Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Pathfinding - rechteckige Spirale durchlaufen

  Alt 17. Dez 2005, 14:16
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.
Angehängte Dateien
Dateityp: zip spiraltest_158.zip (1,9 KB, 125x aufgerufen)
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
  Mit Zitat antworten Zitat