Hallo Jasmin,
wenn man es professionell macht, egal in welcher Sprache, dann berechnet man erstmal den Sichtbarkeitsgraphen.
http://www.geometrylab.de/VisGraph/VisGraph.html
Danach sucht man mit dem Dijkstra Algorithmus auf den Sichtbarkeitsgraphen einen kürzesten Weg.
http://www.cs.umd.edu/~shankar/417-F01/Slides/chapter4a-aus/sld012.htm
Gruß,
Cruz