procedure TForm1.FormClick(Sender: TObject); const cCount = 4; cWidth = 12; var vPoints: array of TPoint; I, J, C, L: Integer; begin Canvas.Brush.Color := $00CBEDFE; for J := 1 to 10000 do begin SetLength(vPoints, Random(cCount) + 1); C := Random(Width); L := Random(Height); for I := Low(vPoints) to High(vPoints) do begin vPoints[I].X := Random(cWidth) + C; vPoints[I].Y := Random(cWidth) + L; end; Canvas.Polygon(vPoints); vPoints := nil; end; end;procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end;
to zswang(伴水)(被黑中):谢谢老兄的程序,不过还有需要改进的地方:各个三角形的形状应比较饱满(没有线状的),且互相之间没有重叠,点也应接近均布于各三角形之间。另外有没有人知道CAD在用混凝土图案填充时的机理?十分感谢!
const
cCount = 4;
cWidth = 12;
var
vPoints: array of TPoint;
I, J, C, L: Integer;
begin
Canvas.Brush.Color := $00CBEDFE;
for J := 1 to 10000 do begin
SetLength(vPoints, Random(cCount) + 1);
C := Random(Width);
L := Random(Height);
for I := Low(vPoints) to High(vPoints) do begin
vPoints[I].X := Random(cWidth) + C;
vPoints[I].Y := Random(cWidth) + L;
end;
Canvas.Polygon(vPoints);
vPoints := nil;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;