Punkte innerhalb eines Polygons mit PHP finden
Bestimmen, ob ein Punkt innerhalb eines Polygons liegt, kann eine häufige Aufgabe bei geometrischen Berechnungen sein. So erreichen Sie dies in PHP:
Wir beginnen mit einem Polygon, das als Array von Eckpunkten mit Breiten- und Längengradkoordinaten dargestellt wird. Zusätzlich haben wir einen Punkt mit ähnlichen Koordinaten, den wir prüfen möchten, ob er innerhalb des Polygons liegt.
Um diese Prüfung durchzuführen, verwenden wir eine Funktion, die ursprünglich in einer anderen Sprache geschrieben und in PHP konvertiert wurde:
<code class="php">$isInside = is_in_polygon( count($vertices_x) - 1, $vertices_x, $vertices_y, $longitude_x, $latitude_y );</code>
Die Funktion is_in_polygon implementiert den folgenden Algorithmus:
<code class="php">function is_in_polygon($points_polygon, $vertices_x, $vertices_y, $longitude_x, $latitude_y) { $i = $j = $c = 0; for ($i = 0, $j = $points_polygon ; $i < $points_polygon; $j = $i++) { if ( (($vertices_y[$i] > $latitude_y != ($vertices_y[$j] > $latitude_y)) && ($longitude_x < ($vertices_x[$j] - $vertices_x[$i]) * ($latitude_y - $vertices_y[$i]) / ($vertices_y[$j] - $vertices_y[$i]) + $vertices_x[$i]) ) ) $c = !$c; } return $c; }</code>
Wenn die Variable $isInside auf true gesetzt ist, liegt der Punkt innerhalb des Polygons; andernfalls liegt es außerhalb.
Zusätzliche Ressourcen:
Für weitere Polygon-bezogene Funktionen sollten Sie die Verwendung der Klasse polygon.php in Betracht ziehen. Initialisieren Sie es mit Ihren Polygonscheitelpunkten und rufen Sie die Funktion isInside mit Ihrem Testpunkt auf, um eine andere Lösung für das Problem zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann man mit PHP feststellen, ob ein Punkt innerhalb eines Polygons liegt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!