Страница 1 из 2
Градиент по окружности
Добавлено: 31 янв 2011, 12:01
xmario
Плагин paint-net - прозрачный градиент между окружностями
Идея этого плагина родилась давно из пожелания одного из посетителей нашего форума. Поначалу область применения подобного плагина показалась очень экзотической, до тех пор, пока я не попробовал его сделать и получить первый результат.
Скачать файл плагина градиент по окружности можно ниже. После установки плагин будет доступен в меню Эффекты - Узоры - Градиент по окружности.
Смысл этого плагина очень простой. Между двумя окружностями определенных радиусов можно настроить градиент в режиме прозрачности. Наглядно иллюстрирует это скриншот, приведенный ниже.
Если добавить под слоем с рисунком какой-нибудь фон, например, просто черный, то можно делать вот такие "объемные"
шары, практически одним кликом.
Re: Градиент по окружности
Добавлено: 31 янв 2011, 12:11
xmario
Для тех, кому интересно, ниже приведен исходный код плагина для
CodeLab.
Код: Выделить всё
#region UICode
int Amount1 = 250; // [1,500] Внешний радиус круга
int Amount2 = 50; // [1,500] Внутренний радиус круга
int Amount3 = 100; // [0,255] Прозрачность у внешнего радиуса
int Amount4 = 255; // [0,255] Прозрачность у внутреннего радиуса
#endregion
void Render(Surface dst, Surface src, Rectangle rect)
{
// Delete any of these lines you don't need
Rectangle selection = this.EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt();
long CenterX = (long)(((selection.Right - selection.Left) / 2)+selection.Left);
long CenterY = (long)(((selection.Bottom - selection.Top) / 2)+selection.Top);
ColorBgra PrimaryColor = (ColorBgra)EnvironmentParameters.PrimaryColor;
ColorBgra CurrentPixel;
for (int y = rect.Top; y < rect.Bottom; y++)
{
for (int x = rect.Left; x < rect.Right; x++)
{
CurrentPixel = src[x,y];
if (
(((x-CenterX)*(x-CenterX)+(y-CenterY)*(y-CenterY))-Amount1*Amount1 <= 0)
&&
(((x-CenterX)*(x-CenterX)+(y-CenterY)*(y-CenterY))-Amount2*Amount2 >= 0)
&&
(Amount1 > Amount2)
)
{
// Окружность градиентом:
double delta = Amount1 - Amount2; //ширина окружности
double d_alpha = Amount4 - Amount3; //ширина градиента
double step = d_alpha/delta; //шаг градиента
//определяем текущий радиус окружности
double d_radius = Math.Sqrt(((x-CenterX)*(x-CenterX)+(y-CenterY)*(y-CenterY))) - Amount2;
CurrentPixel.A = (byte)(int)(Amount4-(d_radius*step));
dst[x,y] = CurrentPixel;
}
else
{
dst[x,y] = CurrentPixel;
}
}
}
}
Re: Градиент по окружности
Добавлено: 31 янв 2011, 12:49
Lynx
А что в узоры то? Может в другой какой раздел. У меня этот уже в экран не помещается
В следующий раз делай под что-нибудь другое. А плагин полезный. Помню, как какой-то юзверь очень долго нас мучал: "как добиться такого эффекта вручную". А теперь раз и готово, спасибо. Я градиенты вообще люблю в любом виде.
Re: Градиент по окружности
Добавлено: 31 янв 2011, 13:15
xmario
В узоры разместил по аналогии с
плагином многоцветный градиент - Multi Color Gradient. Раз буржуи размещают градиенты в узоры, то наверное так правильно...
Хотя, у меня это меню, тоже в экран не помещается.
Re: Градиент по окружности
Добавлено: 31 янв 2011, 13:28
Lynx
А совместно с этим плагином или применяя цветовой баланс теперь значительно ускорится процесс создания всяких прикольных штучек. И шарики бокэ теперь делать быстро можно, и просто пузыри мыльные. Вот только если бы еще один плагин был.... размножение, чтобы не копировать кучу шаров вручную. Желательно с заданной динамикой, например от большего к меньшему.
Вот тогда классные узоры делать будет не утомительно. А то что бы даже точек накидать нужно делать кучу копий руками
Вот уже опробывала полезность.
Дык у тебя же есть плагины в разделе Color там еще свободного места очень много.
Re: Градиент по окружности
Добавлено: 31 янв 2011, 13:45
xmario
Классная идея, насчет пузырей
А что касается меню Color - так Color - это цвет... каким боком тут цвет, если градиент прозрачный
Re: Градиент по окружности
Добавлено: 31 янв 2011, 13:47
Lynx
Да какая разница. Было бы удобно пользоваться. А что где находится так к этому быстро привыкаешь автоматом.
Кста, Крисс в обновлении убрал свой многоцветный градиент ( тот где четыре настраиваемых цвета) из узоров и поставил просто в эффекты . Так же в просто ээфектах находится и градиент для автоматического заполнения по выделению
Я им часто пользуюсь при текстах . Это если уж по аналогии их расставлять.
Re: Градиент по окружности
Добавлено: 31 янв 2011, 13:56
xmario
Ну пусть уж будет в узорах.. я подумал просто про меню Эффекты, но этот плагин - градиент по окружжности - не такой уж и супер нужный плагин, что бы ставить его в главное меню
Re: Градиент по окружности
Добавлено: 31 янв 2011, 14:00
Lynx
Да пусть конечно, тем более он рядышком с твоей же окружностью. Подумай об размножении. Просто тогда и листики на деревьях, и шарики для пузырей и точки для узоров будет так здорово делать. А если еще и с динамикой так вообще супер. Это же настраиваемая кисть получится! Тем боле все так любят такие узорчики, особенно в векторе. Я пока
векторный дождь делала с его узорами так замучалась вручную копировать просто точки.
Re: Градиент по окружности
Добавлено: 17 фев 2011, 13:44
Lynx
Это надо же! Просить плагин который уже есть.. я просто о нем забыла, ужосс!
Вот тут как пузырики, например, раскидать по фону не мучаясь с копированием
viewtopic.php?f=6&t=48&start=30