Einzelnen Beitrag anzeigen

Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#1

Pathfinding - rechteckige Spirale durchlaufen

  Alt 17. Dez 2005, 12:23
DGL-Luke hat hier zusammen mit ichbins eine Funktion geschrieben mit deren Hilfe man eine rechteckigen Spirale durchlaufen kann.
Was Pathfinding ist kann man auf dieser (aus dem Englischen übersetzten) Seite finden: A* Pathfinding für Anfänger

Hier der Code:
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;
begin
  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 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;
end;
HTH!

MfG Florian

[edit=Chakotay1308]Klassifizierung. Mfg, Chakotay1308[/edit]
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat