前節で定義した手続き Line を用いれば任意の2点を結ぶ直線を描くことができます。また、これを用いれば三角形や四角形などの任意の図形も描くことができます。
しかし、任意の点を順に結んでできる (閉じた) 多角形の場合は、それを直接に描くことができる Polygon というメソッドが Canvas プロパティに定義されています。本節ではその用法について簡単にふれておきましょう。
まずは、論より証拠。実際にプログラミングしてみましょう。
フォームのデザインは【基礎課題 7-4-2】までと全く同様とします。今、3点 (10, 50), (30, 10), (60, 50) を順に結んでできる三角形を描く場合を考えましょう。このときの描画ボタンクリックのイベントハンドラは Polygon メソッドを用いると次のようになります。
void __fastcall TForm1::ButtonDrawClick(TObject *Sender)
{
Windows::TPoint points[3];
points[0] = Point(10, 50);
points[1] = Point(30, 10);
points[2] = Point(60, 50);
ImageField->Canvas->Polygon(points, 2);
}
procedure TForm1.ButtonDrawClick(Sender: TObject);
begin
ImageField.Canvas.Polygon([Point(10, 50), Point(30, 10),
Point(60, 50)]);
end;
■JBuilder code■
■VB code■
■VBA code■
各自プログラム作成後、動作を確認してください。きちんと三角形が描けましたか?
ここで、線を描くペンの色を指定するには、
ImageField->Canvas->Pen->Color = clRed;
ImageField.Canvas.Pen.Color := clRed;
■JBuilder code■
■VB code■
■VBA code■
のようにペンの色指定の文を描画命令の前に置きます。 さらに、三角形内部を指定色で塗りつぶしたいのであれば、
ImageField->Canvas->Brush->Color = clBlue;
ImageField.Canvas.Brush.Color := clBlue;
■JBuilder code■
■VB code■
■VBA code■
のように (色を塗る) ブラシの色指定文を描画命令の前に置きます。指定しない場合は白色で塗りつぶされます。各自、好きな色で塗りつぶしてみてください。
Polygon メソッドを用いて、[描画] ボタンを押すと左のように赤色のダイヤを描くプログラムを作成してください。