type
TPtArray = array[0..0] of TPoint;
PPtArray = ^TPtArray;procedure DrawDynamicPolyArray(NumPoints : integer;
Canvas : TCanvas);
var
p : PPtArray;
i : integer;
begin
{$IFOPT R+}
{$DEFINE CKRANGE}
{$R-}
{$ENDIF}
GetMem(p, sizeof(TPoint) * NumPoints);
Randomize;
for i := 0 to (NumPoints -1) do begin
p^[i].x := Random(Form1.Width);
p^[i].y := Random(Form1.Height);
end;
Polygon(Canvas.Handle, p, NumPoints);
FreeMem(p, sizeof(TPoint) * NumPoints);
{$IFDEF CKRANGE}
{$UNDEF CKRANGE}
{$R+}
{$ENDIF}
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Canvas.Brush.Color := clWhite;
Form1.Canvas.FillRect(Rect(0, 0, Form1.Width, Form1.Height));
Form1.Canvas.Brush.Color := clRed;
DrawDynamicPolyArray(SpinEdit1.Value,
Form1.Canvas);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.MinValue := 2;
SpinEdit1.MaxValue := 1000;
SpinEdit1.Value := 100;
end;end.这个是多边形的
SpinEdit1的值=3就是三角形
TPtArray = array[0..0] of TPoint;
PPtArray = ^TPtArray;procedure DrawDynamicPolyArray(NumPoints : integer;
Canvas : TCanvas);
var
p : PPtArray;
i : integer;
begin
{$IFOPT R+}
{$DEFINE CKRANGE}
{$R-}
{$ENDIF}
GetMem(p, sizeof(TPoint) * NumPoints);
Randomize;
for i := 0 to (NumPoints -1) do begin
p^[i].x := Random(Form1.Width);
p^[i].y := Random(Form1.Height);
end;
Polygon(Canvas.Handle, p, NumPoints);
FreeMem(p, sizeof(TPoint) * NumPoints);
{$IFDEF CKRANGE}
{$UNDEF CKRANGE}
{$R+}
{$ENDIF}
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Canvas.Brush.Color := clWhite;
Form1.Canvas.FillRect(Rect(0, 0, Form1.Width, Form1.Height));
Form1.Canvas.Brush.Color := clRed;
DrawDynamicPolyArray(SpinEdit1.Value,
Form1.Canvas);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.MinValue := 2;
SpinEdit1.MaxValue := 1000;
SpinEdit1.Value := 100;
end;end.这个是多边形的
SpinEdit1的值=3就是三角形
Ps: Array of TPoint;
begin
Canvas.pen.Color:=Color;
Canvas.brush.Color:=Color;
SetLength(ps,5);
Ps[0].x:=P.x-1;
Ps[0].y:=p.y;
ps[1].x:=p.x+4;
ps[1].y:=p.y+5;
ps[2].x:=p.x+1;
ps[2].y:=p.y+5;
Canvas.Polygon(ps);
end;