logo search
CSharp_Graphics

Заливка фигур с помощью градиентной кисти

Градиентная кисть используется для заливки фигуры плавно меняющимся цветом. Например, с помощью горизонтального градиента можно залить фигуру цветом, плавно меняющимся по мере продвижения от левого края фигуры к ее правому краю. Примером может послужить прямоугольник с черным левым краем (значения красного, зеленого и синего компонентов равны 0) и красным правым краем (значения компонентов цвета равны соответственно 255, 0, 0). Если ширина прямоугольника равна 256 точкам, красный компонент цвета произвольной точки будет на единицу больше, чем красный компонент цвета соседней точки слева от нее. Точка, расположенная в ряду крайней слева, имеет компоненты цвета (0, 0, 0), вторая слева точка — (1, 0, 0), третья — (2, 0, 0) и т. д. до крайней справа точки, цветовые компоненты которой равны (255, 0, 0). Эти интерполированные значения цветовых компонентов составляют градиент цвета.

Линейный градиент меняет цвет по мере движения по горизонтали, вертикали или параллельно некоторой указанной линии. Градиент контура меняет цвет по мере движения по внутренней части и границе этого контура. С помощью настройки градиентов контура можно достигнуть множества различных эффектов.

На следующем рисунке показаны прямоугольник, залитый с помощью кисти линейного градиента, и эллипс, залитый с помощью кисти градиента контура.

--------------------

How to: Create a Linear Gradient

GDI+ provides horizontal, vertical, and diagonal linear gradients. By default, the color in a linear gradient changes uniformly. However, you can customize a linear gradient so that the color changes in a non-uniform fashion.

The following example fills a line, an ellipse, and a rectangle with a horizontal linear gradient brush.

The LinearGradientBrush constructor receives four arguments: two points and two colors. The first point (0, 10) is associated with the first color (red), and the second point (200, 10) is associated with the second color (blue). As you would expect, the line drawn from (0, 10) to (200, 10) changes gradually from red to blue.

The 10s in the points (50, 10) and (200, 10) are not important. What is important is that the two points have the same second coordinate — the line connecting them is horizontal. The ellipse and the rectangle also change gradually from red to blue as the horizontal coordinate goes from 0 to 200.

The following illustration shows the line, the ellipse, and the rectangle. Note that the color gradient repeats itself as the horizontal coordinate increases beyond 200.