[C#] Изменение цвета по градиенту
А при чём здесь си-шарп?
ты на чём рисуешь?
ты на чём рисуешь?
Используя стандартный System.Drawing
PathGradientBrush
задаешь путь
задаешь surroudcolors (цвета по точкам пути)
задаешь centerpoint
задаеш ей цвет
все
задаешь surroudcolors (цвета по точкам пути)
задаешь centerpoint
задаеш ей цвет
все
ну все ето для pathgradientbrush
С градиентом разобрался, спасибо. Еще такой вопрос: форма заполнена какими-то цветами, я добавляю на нее еще объект определенного цвета, размера, и хочу чтобы его цвет смешался с цветом того, что под ним. Ну то есть добавить его цвет к цвету фона.
Или подскажите функцию, возвращающую цвет из определенной точки на форме.
И еще, как правильно смешать два цвета в argb Color1(0, r1, g1, b1) и Color2(0, r2, g2, b2 взять среднее арифметическое из r1-r2, g1-g2 и b1-b2?
И еще, как правильно смешать два цвета в argb Color1(0, r1, g1, b1) и Color2(0, r2, g2, b2 взять среднее арифметическое из r1-r2, g1-g2 и b1-b2?
up
plz, кто-нибудь! срочно надо.
plz, кто-нибудь! срочно надо.
> Или подскажите функцию, возвращающую цвет из определенной точки на форме.
ыыы. В общем случае нету такой. Если у тебя на форме лежит картинка, то бери цвет из соответствующей точки картинки.
>И еще, как правильно смешать два цвета в argb
Например так, да. Но вообще слово "правильно" тут бессмысленно. Есть некоторые устоявшиеся техники, которые соответствуют некоторым физическим явлениям.
result = alpha * colorImageRGB + (1 - alpha) * colorBackgroundRGB - это твое среднее арифметическое в общем случае.
Ещё можно просто сложить
Или покомпонентно перемножить
ыыы. В общем случае нету такой. Если у тебя на форме лежит картинка, то бери цвет из соответствующей точки картинки.
>И еще, как правильно смешать два цвета в argb
Например так, да. Но вообще слово "правильно" тут бессмысленно. Есть некоторые устоявшиеся техники, которые соответствуют некоторым физическим явлениям.
result = alpha * colorImageRGB + (1 - alpha) * colorBackgroundRGB - это твое среднее арифметическое в общем случае.
Ещё можно просто сложить
Или покомпонентно перемножить
ыыы. В общем случае нету такой. Если у тебя на форме лежит картинка, то бери цвет из соответствующей точки картинки.на форме рисую следующее:
class Gradient : Form {
protected override void OnPaint(PaintEventArgs ea){
base.OnPaint(ea);
Graphics g = ea.Graphics;
Rectangle myEllipse = new Rectangle(0, 0, 200, 200);
GraphicsPath path = new GraphicsPath;
path.AddEllipse(myEllipse);
PathGradientBrush pgb = new PathGradientBrush(path);
pgb.CenterColor = Color.Red;
pgb.SurroundColors = new Color[]{Color.White};
g.FillRectangle(pgb, 0, 0, 200, 200);
}
Может есть способ как-то определить, какой цвет попал в данную точку?
Оставить комментарий
nisven
Как задать изменение цвета по градиенту при удалении от точки по всем направлениям?