| |

Fortgeschrittene ProgrammierungRe: Geraden schneiden? | |  | Autor: ThAlb | Datum: 25.09.03 10:00 |
|
Hallo Andi!
Für dieses Problem ist wohl die Vektorrechnung am geeignetsten.
P1 = (P1x, P1y) und P2 = (P2x, P2y) seien die beiden Punkte, r1 = (r1x, r1y) und r2 = (r2x, r2y) die zugehörigen Richtungen, a1 und a2 sind Skalare. Dann ist nur folgende Gleichung zu lösen
p1 + a1*r1 = p2 + a2*r2
Lösung ist
a2 (r2x*r1y/r1x-r2y) = (p2y-p1y)+(p1x-p2x)*r1y/r1x
Nun sind mehrere Fälle zu unterscheiden:
1. r1x = 0, r2x = 0
-> Die beiden Geraden sind parallel oder identisch.
2. r1x = 0, r2x<>0
-> vertausche die Punkte und beginne von vorne
3. r1x<>0, r2x*r1y/r1x = r2y
-> Die beiden Geraden sind parallel oder identisch.
4. Sonst
-> a2 = ((p2y-p1y)+(p1x-p2x)*r1y/r1x) / (r2x*r1y/r1x-r2y)
Der Schnittpunkt ist p2+a2*r2 = (p2x+a2*r2x, p2y+a2*r2y)
Ist a2=0 dann sind beide Punkte gleich, bei a2>0 liegt der Schnittpunkt von P2 aus gesehen in Richtung des Winkels, sonst in der entgegengesetzten Richtung.
Bei Richtung und Nullpunkt der Winkel wie in Deiner Graphik, Nullpunkt oben links (d. H. S=(10, 4) und nicht (4, 10)...), ergeben sich die Richtungsvektoren zu r = (sin w, -cos w).
Wenn ich mich nicht verrechnet oder verschrieben habe sollte es so gehen...
Viele Grüße
Th. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|