Line Kreuzung
Wie Sie feststellen, ob eine Linie abgefangen in einem polygon
- Bitte mehr Informationen liefern
- Bitte klären Sie die Frage ein wenig. Meinst du ein 2D-Linien-Schnitt einer 2D-polygon? Eine 3D-Linie, die durch die Ebene eines 2D-Polygons und der Schnittpunkt der Linie und das Flugzeug ist auch innerhalb des Polygons? Ist es ein Allgemeines polygon oder können wir davon ausgehen, es ist konvex?
- Gibt es eine Programmiersprache, die Sie tun dies,? Viele eingebaute Bibliotheken für diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Frage ist ein bisschen zweideutig, aber wir versuchen es trotzdem:
Übernehmen die Punkte (x,y) auf der Linie definiert sind, die durch die Gleichung Ax + By + C = 0.
Dann können wir offensichtlich feststellen, ob ein Punkt (x,y) ist auf der Linie durch die Auswertung
Ax + By + C. Wenn der Punkt nicht auf der Linie dann das Zeichen von Ax + By + C sagt uns, auf welcher Seite der Linie der Punkt ist.
Daher, indem Sie die Zeichen der Ausdruck Ax + By + C für jedes vertex (x,y) des Polygons, wir können bestimmen, ob alle Punkte des Polygons sind auf der gleichen Seite der Linie oder nicht.
(Ein etwas anderes problem wäre es, festzustellen, ob ein polygon schneidet ein Liniensegment.)
Können Sie Lesen, eine vernünftige Antwort aus diese Umsetzung in einigen Webseite
}
Referenz.
C++ Beispiel: Geometrie-Konzepte-Line-Kreuzung und Ihren Anwendungen, 2D-Zeichnung
Durch lbackstrom
von der Seite ucancode
Müssen Sie die Punkte des Polygons auf eine Koordinate graph und die Steigung und der x-und der y-Achsenabschnitt der Linie zu finden, die Informationen. Von dort aus ist es einfache Mathematik.
Je nachdem, was genau du haben willst (nehme ich an, dass ein Liniensegment, wie ich gerade schrieb, dass der code in dieser Woche), können Sie es in zwei Teile:
zunächst würde ich vorschlagen, Codierung Linien als
weil diese form hat keine Ecken Fällen für Zeilen wie
X=5
,Y=4
oderX=3*Y
.