1,183
社区成员
发帖
与我相关
我的任务
分享
procedure Trigon(Canvas:TCanvas;xy1,xy2,xy3:TPoint);
var
xy:array[1..4]of TPoint;
begin
xy[1]:=xy1;
xy[2]:=xy2;
xy[3]:=xy3;
xy[4]:=xy1;
Canvas.Polygon(xy);
end;
procedure floodfill(x:integer;y:integer;oldcolor:Tcolor;newcolor:Tcolor);
begin
if form1.Image1.Canvas.Pixels[x,y]=oldcolor then
begin
form1.Image1.Canvas.Pixels[x,y]:=newcolor;
floodfill(x,y+1,oldcolor,newcolor);
floodfill(x,y-1,oldcolor,newcolor);
floodfill(x-1,y,oldcolor,newcolor);
floodfill(x+1,y,oldcolor,newcolor);
end;
end;
{设计算法不停地画
下面是个特殊三角形,算法相对简单
如果数学功底好,可以把算法写成任意三角形的
}
procedure TForm1.Button1Click(Sender: TObject);
var
X1,Y1,X2,Y2,X3,Y3: Integer;
begin
X1 := 20;
Y1 := 20;
X2 := 20;
Y2 := 100;
X3 := 150;
Y3 := 100;
image1.Canvas.MoveTo(X1,Y1);
image1.Canvas.LineTo(X2,Y2);
image1.Canvas.LineTo(X3,Y3);
image1.Canvas.LineTo(X1,Y1);
while True do begin
if Y1 < Y2 then Inc(Y1);
if X3 > X2 then Dec(X3);
if (Y1 >= Y2) and (X3 >= X2) then Break;
Image1.Canvas.MoveTo(X1,Y1);
Image1.Canvas.LineTo(X3,Y3);
Application.ProcessMessages;
end;
end;