Schnitttest von 2 Strecken (im 2-Dim-Raum)
-
Hallo,
ich habe ein Problem:
Ich habe 2 Geraden (jeweils die Anfangs und Endpunkte) in einem 2-dim.-Koordinatensystem.
Ich muss nun prüfen, od sich diese zwei Strecken schneiden. Der genaue Punkt is egal, es geht nur darum ob sie sich schneiden oder nicht.Ich hab schon diverse Sachen ausprobiert bin aber zu keiner Lösung gekommen die das Problem kommplett abdeckt.
Kennt jemand einen Algotithmus?
Kann mir jemand helfen?Danke & m.f.G
BobRodrigeuz
-
Du mußt die entsprechenden Geraden schneiden und anschließend prüfen, ob der schnittpunkt auf den beiden strecken liegt, nur dann ist es wirklich ein schnittpunkt, sonst nicht.
-
prüf einfach, ob sie nicht parallel sind
die Steigung einer gerade errechnet man durch
Ist die Steigung bei beiden gleich, sind sie parellel, ist sie nicht gleich, schneiden sie sich früher oder später mal
-
Ist die Steigung bei beiden gleich, sind sie parellel, ist sie nicht gleich, schneiden sie sich früher oder später mal
In meinem Fall handelt es sich um Strecken also Geradenabschnitte, dass heißt das der Schnittpunkt auf einer (bzw beider)der Strecken liegen muss.
-
Seien A, B die Enden von einem Segment und G, H die des anderen.
Mittels sgn(det(G-A, B-A)) == sgn(det(B-A, H-A)) kannst du überprüfen ob du von A aus B zwischen G und H "sehen" kannst (wobei du auch rückwärts schauen kannst). Gilt zudem sgn(det(A-G, H-G)) == sgn(det(H-G, B-G)) dann müssten AB und GH sich schneiden.
Alternativ kannst du überprüfen ob GBHA konvex ist.
Mit dem verallgemeinererten Satz des Pythagoras könntest du wahrscheinlich auch ein Kriterium basteln.
Geraden schneiden würde ich nicht, da du hier mindestens eine Fallunterscheidung (parallel oder nicht) rein kriegst. Wenn schlecht gemacht noch eine weitere (vertikal oder nicht).
-
BobRodriguez schrieb:
[...] Geraden [...] Strecken [...]
aus deinem Post ging also nicht eindeutig hervor, um was es sich handelt
berechne die Funktion der beiden Strecken, ermittle den Schnittpunkt und schau, ob dieser sich auf beiden Strecken befindet
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Mathematik verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
geradengleichungen aufstellen, gleichsetzen, nach x auflösen
-
-
Erstmal danke an alle!!
Ich habs jetzt über die Geradengleichungen gelöst. Ist vielleicht nicht die eleganteste und schnellste/effizienteste Lösung aber es schneit zu funktionieren.Danke
Bob