nie wiem, czy mi znów nie cofną do newbie, ale :
mam narysować fraktal, jednak coś się krzaczy- tzn. rysuje 100 tys pkt w 1 malutkiej przestrzeni :( nie wiem jak sobie z tym poradzić. powinno ładną spiralkę narysować a tu kapa. w komentach znajdziecie all teoretycznie potrzebne do tr. sierpińskiego. Aha rysuję ifs-em, czyli pktowo :)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y:integer;
//tablica:array[1..3,1..6] of double;
tablica:array[1..2,1..6]of double;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i,los,xprim,yprim:integer;
xprim1,a,b,c,d,e,f:double;
yprim1:double;
begin
Randomize;
x:=1;
y:=1;
image1.Canvas.Brush.Color:=clblack;
image1.Canvas.FillRect(rect(x+300,y+300,x+305,y+305));
for I := 0 to 100000 do
begin
los:= random(2)+1;
a:= tablica[los][1];
b:= tablica[los][2];
c:=tablica[los][3];
d:=tablica[los][4];
e:=tablica[los][5] ;
f:=tablica[los][6] ;
xprim1:=(a*x) + (b*y) + c;
yprim1:=(d*x) + (e*y) + f;
xprim:=round(xprim1) ;
yprim:=round(yprim1);
x:=xprim;
y:=yprim;
image1.Canvas.FillRect(rect(x+300,y+300,x+301,y+301));
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{
tablica[1][1]:=0.5;
tablica[1][2]:=0;
tablica[1][3]:=-3;
tablica[1][4]:=0;
tablica[1][5]:=0.5;
tablica[1][6]:=-2;
tablica[2][1]:=0.5;
tablica[2][2]:=0;
tablica[2][3]:=3;
tablica[2][4]:=0;
tablica[2][5]:=0.5;
tablica[2][6]:=-2;
tablica[3][1]:=0.5;
tablica[3][2]:=0;
tablica[3][3]:=0;
tablica[3][4]:= 0 ;
tablica[3][5]:=0.5;
tablica[3][6]:=3.196152;
}
tablica[1][1]:=-0.4;
tablica[1][2]:=0;
tablica[1][3]:=-1;
tablica[1][4]:=0;
tablica[1][5]:=-0.4;
tablica[1][6]:=0.1;
tablica[2][1]:=0.76;
tablica[2][2]:=-0.4;
tablica[2][3]:=0;
tablica[2][4]:=0.4;
tablica[2][5]:=0.76;
tablica[2][6]:=0;
end;
end.
z dołu dziękuję za odp :)