1

三角形が描けます。これが私のコードです

    Graphics surface;
    surface = this.CreateGraphics();
    SolidBrush brush = new SolidBrush(Color.Blue);
    Point[] points = { new Point(100, 100), new Point(75, 50), new Point(50, 100) };
    surface.FillPolygon(brush, points);

三角形の 3 つの頂点に異なる色を付ける方法を教えてください。ここでは青色のみを使用しています。しかし、1 つの頂点を赤、別の頂点を青、別の頂点を緑にしたいのです。どうやってやるの?

4

1 に答える 1

2

多角形を描いたら、頂点を表す円を上に描きます。1色のみの場合はループに入れることをお勧めしforますが、ブラシの色を変更する場合は個別に行ったほうがよいでしょう。

これをコードに追加します。

SolidBrush blueBrush = new SolidBrush(Color.Blue); // same as brush above, but being consistent
SolidBrush redBrush = new SolidBrush(Color.Red); 
SolidBrush greenBrush = new SolidBrush(Color.Green);

int vertexRadius = 1; // change this to make the vertices bigger

surface.fillEllipse(redBrush, new Rectangle(100 - vertexRadius, 100 - vertexRadius, vertexRadius * 2, vertexRadius * 2));
surface.fillEllipse(blueBrush, new Rectangle(75 - vertexRadius, 50 - vertexRadius, vertexRadius * 2, vertexRadius * 2));
surface.fillEllipse(greenBrush, new Rectangle(50 - vertexRadius, 100 - vertexRadius, vertexRadius * 2, vertexRadius * 2));

編集

あなたのコメントから、ある頂点から次の頂点へのグラデーションを作成しようとしていたことがわかりました。MSDNドキュメントに基づいて、パス グラデーションを作成する方法を次に示します。(内側をグラデーションで塗りつぶしたくない場合は、線形グラデーションを使用できます。)

PathGradientBrush gradientBrush = new PathGradientBrush(points);
Color[] colors = { Color.Red, Color.Blue, Color.Green };
gradientBrush.CenterColor = Color.Black;
gradientBrush.SurroundColors = colors;

次に、ポリゴンを新しいブラシで塗りつぶします。

surface.FillPolygon(gradientBrush, points);
于 2013-03-27T22:44:02.300 に答える