绘制多边形
在窗体上添加两个Button组件(我这里是button7,button8)
1. procedure Polyline(Points : array of TPoint) 2. {其中Points是一个TPoint型的数组}
procedure TForm1.FormCreate(Sender: TObject); begin Canvas.Pen.Width := 4; Canvas.Pen.Color := clRed; Canvas.Brush.Color := clYellow; //设置画刷颜色 end;
Polygon方法
{绘制多边形:它的参数是一个点数组,这里定义了一个常数数组} procedure TForm1.Button7Click(Sender: TObject); const pts:array[0..3] of TPoint = ( (x:10; y:40), (x:46; y:120), (x:82; y:40), (x:46; y:10) ); begin Canvas.Polygon(pts); end;
通过在画布上绘制一条从最后一个点到第一个点的直线,在画布上绘制一系列连接传入和关闭形状的点的线。
使用 Polygon 在画布上绘制一个封闭的多边形,使用 Pen 的值。在绘制完整的形状之后,使用 Brush 的值填充形状。
Polyline方法
{绘制连续的一组直线; 它的参数也是一个点数组, 我只是把上面的平移了一点} procedure TForm1.Button8Click(Sender: TObject); const pts:array[0..3] of TPoint = ( (x:10+82; y:40), (x:46+82; y:120), (x:82+82; y:40), (x:46+82; y:10) ); begin Canvas.Polyline(pts); end;
用当前钢笔在画布上绘制一系列直线,将传递给它的每个点连接起来。
使用 Polyline 连接画布上的一组点。如果只指定两个点,Polyline 将绘制一条线。
Point 参数是要连接的点的数组。
绘制五环图标
const {把五环颜色定义为常量数组} Colors:array[0..4] of TColor = (clBlue,clBlack,clRed,clYellow,clGreen); var ci:Integer; {用作颜色序号}
procedure TForm1.FormCreate(Sender: TObject); begin Button9.Caption := '重绘'; Self.Color := clWhite; Canvas.Pen.Width:=5; end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const r = 30; {圆半径} var radian: Double; {记录弧度:Sin、Cos函数需要弧度做参数;弧度 = 角度 * Pi/180} i,a,b :Integer; begin Canvas.MoveTo(X,Y - r); Canvas.Pen.Color := Colors[ci]; for i := 1 to 360 do begin radian := i * (Pi/180); {获取弧度} a := X + Round(Sin(radian) * r); {用 Sin 函数获取横坐标} b := Y - Round(Cos(radian) * r); {用 Cos 函数获取纵坐标} Canvas.LineTo(a, b); {绘制} Application.ProcessMessages; {不要影响其他操作} Sleep(3); {等 3 毫秒} end; Inc(ci); if ci = 5 then ci := 0; end;
procedure TForm1.Button9Click(Sender: TObject); begin ci :=0 ; Repaint;//重画 end;