Wenn Sie den Artikel lesen , werden Sie feststellen, dass dies im Abschnitt "Schlussfolgerungen" als offenes Problem aufgeführt ist:
"Eine interessante Richtung für weitere Arbeiten besteht darin, Sprungpunkte auf andere Arten von Gittern wie Sechsecke oder Texes auszudehnen (Yap 2002). Wir schlagen vor, dies durch die Entwicklung einer Reihe von Schnittregeln zu erreichen, die denen für quadratische Gitter entsprechen."
Um die Sprungpunktsuche auf Ihr orthogonales Gitter anzuwenden, müssen Sie entscheiden, welche Punkte als Sprungpunkte in diesem Gitter gelten sollen. Nachdem ich einen Moment darüber nachgedacht habe, denke ich - habe es aber nicht bewiesen! - dass die folgenden Regeln (basierend auf den Definitionen 1 und 2 im Papier, die aus Gründen der Lesbarkeit etwas umformuliert wurden) funktionieren können:
Ein Knoten y ist der Sprungpunkt vom Knoten x in Richtung d, wenn y von x aus erreichbar ist, indem er sich gerade in Richtung d bewegt, und ist der Knoten, der x am nächsten kommt, um mindestens eine der folgenden Bedingungen zu erfüllen:
- Knoten y ist der Zielknoten,
- d ist eine horizontale Bewegung, und eine der Zellen, die vertikal neben der Zelle y - d liegen (dh die Zelle einen Schritt vor y, wenn sie sich in Richtung d bewegt), ist blockiert, oder
- d ist eine vertikale Bewegung, und es existiert ein Knoten z, der ein Sprungpunkt von y (gemäß Bedingung 1 oder 2) in einer horizontalen Richtung d 'ist.
Natürlich können die Wörter "vertikal" und "horizontal" in der obigen Definition ausgetauscht werden. Der Punkt ist, dass wir einen Weg wählen müssen, um die Symmetrie zu brechen, damit nur einer der möglichen Pfade zum Durchqueren eines offenen rechteckigen Bereichs berücksichtigt wird. Harabor und Grastien bevorzugen dazu "Diagonal-First" -Pfade. Da wir dies jedoch nicht können, müssen wir stattdessen "Vertical-First" -Pfade (oder "Horizontal-First" -Pfade) bevorzugen.
Es könnte auch möglich sein, alternative Schnittregeln zu entwickeln, die "natürlichere" Pfade erzeugen, z. B. den aktuellen Kurs dem Abbiegen vorziehen oder vielleicht sogar das ständige Drehen von Treppenpfaden bevorzugen. Die Regel, die ich oben angegeben habe, ist einfach die einfachste Übersetzung der Harabor & Grastien-Regel in ein orthogonales Gitter, das ich mir vorstellen kann.
Wenn Sie sich die Definition der 45-Grad-Route ansehen, ist es tatsächlich immer möglich, einen Pfad mit einer 45-Grad-Route in einen Pfad ohne 45-Grad-Drehung umzuwandeln. Und es ist auch optimal (man kann es leicht durch Widerspruch beweisen).
Der einfachste Weg ist also, die Sprungpunktsuche auszuführen und sie dann in eine orthogonale Route umzuwandeln.
quelle