Abstand zwischen zwei Punkten im hexagonalen Koordinatensystem

I

itse

Gast
Hallo,

ich soll den minimalen Abstand zwischen zwei Hexagonen berechnen. Ich wollte zuerst einfach die bekannte Formel hernehmen, um die Entfernung direkt zwischen zwei Punkten zu berechnen.

Jedoch soll der Abstand in der minimal zu durchlaufenden Anzahl von Hexagonen angegeben werden.

In der Mitte beginnt es mit 0,0, direkt rechts daneben geht es mit 2,0, nach links mit -2,0. Wenn ich beispielweise senkrechte nach oben gehen will, muss ich zwei Hexagone als Distanz für das nächste zu erreichende Hexagon nehmen, da ich nicht direkt gehen kann.

Bsp. 0,0 -> -1,1 -> 0,2.

Leider komme ich nicht auf die Überlegung, um den Algorithmus implementieren zu können. Es gibt insgesamt sechs Richtungen für jedes Hexagon.

Kann mir da jemand helfen?

Gruß
itse
 
S

SlaterB

Gast
teste doch ein paar Beispiele,
wie weit ist es von 0,0 nach 2,0 4,0 10,0 20,0
nach 0,2 0,10 0,20
nach 1,1 10,10, 20,20

dann nach 5,10, 10,20

vielleicht kannst du daraus eine Formel ableiten, etwa je 1 pro Abstand in x und y Richtung,
wenn aber sowohl in x als auch y gleichzeitig bewegt wird, dann entsprechend viele Felder in einem Schritt, also wieder abziehen

Beispiele:
0,0 nach 0,10 -> 10 Koordinaten-Differenz, 10 Felder
0,0 nach 10,0 -> 10 Koordinaten-Differenz, 10 Felder
0,0 nach -5,10 -> 5+10 = 15 Koordinaten-Differenz/ Felder, davon aber 5 schräge möglich da sowohl x als auch y verändert werden, also nur 10 Felder

(mist, wenns stimmt hab ich jetzt die Formel abgeleitet ;)
aber dass man in x-Richtung 2 Koordinaten-Differenz in einem Feld-Wechsel schaffen kann ist auch noch einzubauen usw. )
 
Zuletzt bearbeitet von einem Moderator:

Oben