Habe hier ein update:
durch den modifier kann man die spirale auch richtig eng machen.
Delphi-Quellcode:
type PArray = array of TPoint;
function spirale(abstand,count,startstep:integer;startpunkt:tpoint;
drehsinnnachrechts:boolean):PArray;
var
richtung,i,step:integer;
actpos:tpoint;
modif:boolean;
begin
modif := true;
setlength(result,count);
richtung:=1;
actpos:=startpunkt;
result[1]:=actpos;
step:=startstep;
for i:=1 to count-1 do begin
case richtung of
1: actpos.x:=actpos.x+step;
2: actpos.y:=actpos.y+step;
3: actpos.x:=actpos.x-step;
4: actpos.y:=actpos.y-step;
end;
step:=step+abstand;
if modif then
step := step-1;
modif := not modif;
if drehsinnnachrechts then
begin
richtung:=richtung+1;
if richtung=5 then richtung:=1;
end else begin
richtung:=richtung-1;
if richtung=0 then richtung:=4;
end;
result[i]:=actpos;
end;
end;
Ausserdem ist im Anhang ein kleines Beispielprojekt.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1