Ich googeln „A * -Algorithmus auf Navigation Mesh“ nur falsche Wege, um g-Werte zu schätzen, wie diesesGibt es einen Anfang und ein Ziel, wie findet man den kürzesten Weg in einem Navigationsnetz?
Durch die Länge des blauen Zusammenfassung Liniensegmente erhalten wir den g-Wert, der jedoch überschätzt wird (g-Wert sollte unterschätzt werden). Dieser Algorithmus gibt einen optimierten Pfad zurück, ist jedoch nicht garantiert der kürzeste.
Die einzige Art, wie ich denken kann, ist ein Sichtbarkeitsgraphen zu zeichnen Masche auf Basis der Navigations .Aber, dass zu viel Speicher kosten würde.
Gibt es andere Möglichkeiten, Netz den kürzesten Weg in einer Navigation zu berechnen?
Ich denke, dass Sie den A * -Algorithmus ein bisschen mehr studieren sollten, besonders welche Annahmen es macht und welche Garantien es bietet. Damit können Sie auch sinnvollere Fragen stellen. Zum Beispiel fehlt Ihrer Frage eine genaue Definition dessen, was * Sie * an der A * -Ausgabe für falsch halten. –
@UlrichEckhardt A * ist richtig, aber ich kann den A * -Algorithmus nicht anwenden, um das Navigationsdiagramm direkt zu verbinden. A * benötigt ein typisches Diagramm mit Knoten und Kanten, damit es eine Dijkstra-ähnliche Suche anwenden kann, um den kürzesten Pfad zu finden die Suche ist abgeschlossen, kein Pfad kann kürzer sein als der Pfad, den er jetzt zurückgegeben hat. Aber Navigations-Mesh ist kein Graph mit nur Knoten und Kanten, es besteht aus passierbaren Bereichen, also habe ich gegoogelt, wie ich A * auf das Navigations-Mesh anwenden kann. – iouvxz
Diese Artikel betrachten entweder die Zick-Zack-Pfade, die durch alle Polygone gehen, oder die Zick-Zack-Pfade, die durch den Mittelpunkt aller Kanten gehen, als den g-Wert. Aber das ist falsch, diese Art von g-Wert überschätzt die Entfernung von Startpunkt zum aktuellen Polygon (oder zur aktuellen Kante). Wenn die Suche abgeschlossen ist, werden alle nicht ausgewählten Pfade überschätzt und aufgegeben. – iouvxz