よく使用される描画関数
DrawArc は円弧を描画します
例: graphics.DrawArc(pen,0,0,200,200,90,120)
最後から 2 番目のパラメータは開始次数を表し、最後のパラメータは円弧のスパン次数です。たとえば、開始次数は 90 で、円弧の広がり次数は 120 です
赤いのが円弧です。同様のメソッドには、扇形を描画する DrawPie や扇形を塗りつぶす FillPie などがあります。すべてに開始度数と範囲度数があります。
DrawPolygon はポリゴンを描画します
例: Point []pt=new Point[]{new Point(0,50),new Point(0,100),new Point(100,100)};
graphics.DrawPolygon(pen, pt);
Point配列は各点の位置と点の数を指定します。 DrawPolygon で描画した多角形は閉じられ、最初の点と最後の点が DrawPolygon によって自動的に接続されます。
DrawCurve はカーディナル スプラインを描画します
例: Point[] pt = new Point[] { new Point(0, 0), new Point(100, 50),new Point(200,0)}; 1.5f);
or.FromArgb(0, 255, 0), 2);
Rectangle rect = new Rectangle(10, 10, 100, 100); GraphicsPath grcPath = using use using use using Rect using Rectangle through using ' s through through using 's ' through ‐ ‐ ‐ ‐ ‐ grcPath.AddEllipse(rect);
use use with use using using ' の四角形 using ' use using using using through out through out out through out through out through out ' s ' s ' through ‐ to ‐‐ '‐‐‐‐‐‐ light を直方体にする); ;
grcPath.grcPath);
}
PathGradientBrush
使用例:
V Private void Formpaint (Object SENDER, PAINTEVENTARGS E) {
// パスを作成します
GraphicSpath Path = New GraphicSpath () , 100);
Pathgradientbrush Brush = New Pathgradientbrush (PATH);中心点は白です。SurroundColors = new Color[] {Color.Black };
の色。黒です。つまり、中心点からパス上の各点まで、白から黒へのグラデーションがあります。 。
PathGradientBrush で計算された中心点を使用したくない場合は、brush.CenterPoint = new Point(20, 50);
複数のパス ブラシのように CenterPoint を指定することもできます。カラーグラデーション
マルチプラーグラデーションは、以前の線形勾配絵画に導入されているため、パスの複数の色の勾配は直接類似しています。 path = new GraphicsPath();
Rectangle rect = new Rectangle(0, 0, 100, 100);
path.AddRectangle(rect);
//パス ブラシを作成します
PathGradientBrush Brush = new PathGradientBrush(path);
//パス ブラシで四角形を塗りつぶします
e.Graphics.FillRectangle(brush, rect);中心点の色は color_blend の最後の色です。色の配列は、さまざまな色のグラデーションと同様に、パス上のすべての点に中心点を配置できます。「直線を作成する」を参照してください。すると、この線の 3 分の 2 が特定の色から特定の色へのグラデーションになり、もう 1 つは特定の色から特定の色へのグラデーションになります。 -3 番目は、特定の色から特定の色へのグラデーションです。
上記は、赤から緑までのグラデーション範囲: 0~2/3、緑から白(中心点の色): 2/3~1; 直線全体の長さを 1 に置き換えると仮定します。また、中心点の位置もカスタマイズ可能です。
点で構成されたパスを使用したブラシ
例:
private void formPaint(Object sender, PaintEventArgs e)
{
Rectangle rect = new Rectangle(0, 0, 100, 100);
Point []pts=new Point[] {new Point(50,0),new Point (0,100),new Point(100,100)};
PathGradientBrush Brush=new PathGradientBrush(pts); // パスポイントの色
Brush.SurroundColors=new Color[]{Color.Black};
e.Graphics.FillRectangle(brush) 、rect);
}
この種の点で構成されるグラフィックスは、GraphicsPath を渡さずにパス ブラシによって直接作成されます。上記の点について、パス ブラシはこれらの点を (順番に) 自動的に接続します。図形を作成して塗りつぶしますが、塗りつぶされる範囲はこれらの点で構成される形状に限定されます。上と同じように、このブラシは長方形を塗りつぶすために使用されます
{
//パスを作成 path = new GraphicsPath() ;
Rectangle rect = new Rectangle(0, 0, 100, 100);
Point [] pts = 新しいポイント[] { 新しいポイント (50, 0), 新しいポイント (0, 100), 新しいパス (100, 100)};
e.Graphics.FillPa th(ブラシ、パス) ;
}
FillPath 関数は DrawPath と似ていますが、DrawPath はブラシを使用してパスを記述するのに対し、FillPath は「fill」を使用してパスを記述します。
FillPath によって埋められるパスには特定の制限があり、閉じられていることに注意してください。衝突しないでください。
PathGradientBrush クラスの SurroundColors 属性メンバー、パス ポイント上の複数の色
以前は 1 つの色のみを指定しましたが、SurroundColors は Color 配列であり、複数の色を指定できます。指定されるのは、図形の角の点の色です。たとえば、三角形には 3 つの角がありますが、これら 3 つの角の点に 3 つの異なる色を指定できます。ただし、三角形には 3 つの角しかないため、4 色にすることはできません。範囲を超えた場合はエラーとなります。
長方形の場合も同様で、色は4色指定できますが、長方形など指定した色の数が角の点の数より少ない場合は、角の1点の色だけを指定します。
その後、残りのコーナーポイントは SurroundColors 配列の最後のカラー値を使用します。
パス ブラシの最初の例を変更して、4 隅の点の色を指定しましょう。以下の通り:
V Private void Formpaint (Object SENDER, PAINTEVENTARGS E) { // パスを作成します
GraphicSpath Path = New GraphicSpath () , 100); ; パスグラディエントブラシ = New Pathgradientbrush (PATH);ポイントは白です
.centercolor = color.white; .Surroundcolors = New Color[] {Color.Black,Color.Red,Color.Green,Color.Blue};
ドットの色の違いが大まかにわかります。それは黒、赤、青、緑です。左上 (0,0)、右上 (100, 0)、右下 (100, 100)、左下 (0, 100) の 4 つの隅の点に対応します。
このグラデーション ブラシがどのように見えるか、またはそのベースになっているものについて話しましょう。まず、SurroundColosでは角点(0,0)をColor.Black、角点(100,0)をColor.Redとして指定し、この2点を直線で結ぶことができます。この直線にも黒から赤へのグラデーションがかかっています。そしてこの直線は途中にあります。
すると、このパス(直線)上の各点は異なる色になります。
たとえば、(0, 0) は黒、(1, 0) は明るい黒です。 。 。 。 。 (99,0) は濃い赤です (100,0) は赤です。
中心点の色は白なので、中心点から0,0までの直線は白から黒へのグラデーション、(1,0)までは白から明るい黒へのグラデーションです。
他のコーナーポイントのグラデーションも同様です。
上記のグラデーションはこれらのルールに従って形成されます。
別の三角形の例:
private void formPaint(Object sender, PaintEventArgs e)
{//パスを作成
Path = new GraphicsPath( );Point []pts = new Point[] { new Point( 50, 0 ), new Point(0, 100), new Point(100, 100) };
path.AddLines(pts); PathGradientBrush Brush=new PathGradientBrush(path); // センターカラー白ブラシ .CenterColor=Color.White;
//コーナーポイントの色: 赤、緑、青。 pts 配列の順にBrush.SurroundColors = new Color[] { Color.Red, Color.Green, Color.Blue };
use through using ‐ out through Through Out off ‐ ‐‐‐‐‐‐‐‐ ‐‐‐out の順序を整える}
上記の知識点を理解した後、五芒星形の例を作成してみましょう (パス グラデーション ブラシを使用し、さまざまな角の色を使用します)。
C# GDI+ プログラミング (2) 関連記事の詳細については、PHP 中国語 Web サイトに注目してください。