Dank dieses Beitrags: Sechseckige Kacheln und Finden ihrer benachbarten Nachbarn kann ich benachbarte Kacheln zu einer bestimmten Kachel sammeln. Aber ich bin ziemlich auf einen Algorithmus fixiert, der mir nur einen "Ring" von Kacheln gibt, der durch einen Versatz angegeben wird. Der in diesem Stapelüberlauf-Beitrag angegebene Algorithmus berücksichtigt nicht genau die Reihenfolge, in der die Kacheln gesammelt werden.
Ich weiß, dass mit jedem Versatz 6 Kacheln hinzugefügt werden.
- Mit Versatz 1 erhalten Sie 6 Kacheln (die ersten benachbarten Kacheln).
- Offset 2 ergibt 12.
- Offset 3 ergibt 18 usw.
Mit jedem Versatz wächst die Zahl konstant um 6. Ich gehe also davon aus, dass es eine Regel geben sollte, die sich an diese Offsets anpasst. Ich kann das nicht genau herausfinden. Jemand?
quelle
Ich habe festgestellt, dass dieser Artikel eine sehr gute Referenz für hexagonale Gitteralgorithmen ist, und sein Abschnitt über "Entfernungen" bietet eine Methode zum Bestimmen der Anzahl von Schritten zwischen zwei Kacheln. Wenn Sie Ihre Axialkoordinaten (xy) in Würfelkoordinaten (xyz) umwandeln , ist der Abstand immer gleich dem größten der Koordinatenversätze zwischen den beiden Kacheln oder max (| dx |, | dy |, | dz |).
Eine erschöpfende Suche des gesamten Rasters nach Kacheln im gewünschten Abstand ist mit den Rastermaßen, aber es ist eine einfache Implementierung, die sich gut für kleine Raster eignet.O ( n2)
quelle