015
14.07.2003, 17:37 Uhr
0xdeadbeef
Gott (Operator)
|
Wenn du nur wissen willst, ob es einen Schnittpunkt gibt, gehts wahrscheinlich einfacher, aber wenn du den Schnittpunkt wissen willst, gehts so: Du rechnest die zwei Strecken in einen Ausgangspunkt und Richtungsvektor um. Nimm zum Beispiel die Punkte A,B,C,D und die Strecken AB, CD. Interpretiere die Punkte als Vektoren und setze die beiden Strecken gleich, dann kriegst du das Gleichungssystem
C++: |
A - (B - A)x = C - (D - C)y
|
Das in eine Matrix schreiben und ein bisschen rumrechnen, damit bestimmst du den Schnittpunkt der verlängernden Geraden. Wenn die Gleichung lösbar und sowohl x als auch y in [0,1] liegen, schneiden sich die Strecken. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |