logo
CSharp_Graphics

Настройка с интерполяцией

В следующем примере кисть градиента контура строится на основе контура треугольной формы. В коде устанавливается свойство InterpolationColors кисти градиента контура для определения массива цветов интерполяции (темно-зеленый, голубой, синий) и массива положений интерполяции (0, 0,25, 1). По мере движения от границы треугольника к его центру цвет плавно меняется от темно-зеленого к голубому, а затем от голубого к синему. Изменение темно-зеленого цвета на голубой происходит на 25 процентах расстояния между точками с темно-зеленым и синим цветами.

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

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

To set the center point

The following example creates a path gradient brush based on an ellipse. The center of the ellipse is at (70, 35), but the center point of the path gradient brush is set to (120, 40).

// Create a path that consists of a single ellipse.

GraphicsPath path = new GraphicsPath();

path.AddEllipse(0, 0, 140, 70);

// Use the path to construct a brush.

PathGradientBrush pthGrBrush = new PathGradientBrush(path);

// Set the center point to a location that is not

// the centroid of the path.

pthGrBrush.CenterPoint = new PointF(120, 40);

// Set the color at the center of the path to blue.

pthGrBrush.CenterColor = Color.FromArgb(255, 0, 0, 255);

// Set the color along the entire boundary

// of the path to aqua.

Color[] colors = { Color.FromArgb(255, 0, 255, 255) };

pthGrBrush.SurroundColors = colors;

e.Graphics.FillEllipse(pthGrBrush, 0, 0, 140, 70);

The following illustration shows the filled ellipse and the center point of the path gradient brush.

In the preceding illustration, the points at the far right of the ellipse are not pure blue (although they are very close). The colors in the gradient are positioned as if the fill reached the point (145, 35) where the color would be pure blue (0, 0, 255). But the fill never reaches (145, 35) because a path gradient brush paints only inside its path.