Sie suchen nach einem Trichteralgorithmus.
Hier bist du einfach
http://digestingduck.blogspot.com.es/2010/03/simple-stupid-funnel-algorithm.html
Grundsätzlich identifiziert der Algorithmus Kanten als Portale und erstellt einen Trichter, der gegen den Scheitelpunkt der Kanten getestet wird, um zu überprüfen, ob sie sich im Trichter befinden oder nicht.
In Schritt A wird der Trichter mit der Startposition gebaut und das Portal durch eine gelbe Linie gekreuzt.
In Schritt B wird das nächste Portal überprüft, der obere Scheitelpunkt befindet sich im Trichter, sodass die obere Trichterlinie nun durch diesen verläuft. Der untere Scheitelpunkt befindet sich jedoch außerhalb des Trichters, da die rote Linie unter der grünen Linie liegt, sodass die untere Linie nicht durch sie verläuft, sondern weiterhin durch den unteren Scheitelpunkt des vorherigen Portals verläuft.
Wie Sie überprüfen können, wird der Trichter immer kleiner, bis Schritt F, in dem der Trichter nicht gebaut werden kann, da die rote Linie einen schlechten Trichter ergibt, sodass der obere Scheitelpunkt als neuer Startpunkt und ein neuer Trichter ausgewählt wird erstellt werden, wenn der Endpunkt nicht in diesem Netz liegt.
Beachten Sie, dass diese Art von Algorithmus auch eine einfache Lösung für das Problem der Modellgröße ermöglicht, da Sie berücksichtigen können, dass die Portale um den 2-fachen Radius Ihres Modells kleiner sind.