So. Ich hab Dir die Vektorgleichung mal als normale Gleichungen aufgeschrieben. Jetzt sind x und y Komponente von einem Parameter abhängig.
Nehmen wir g1(t1): Die x-Komponente ist gx(t1) und die y-Komponente gy(t1), beide von t1 abhängig, so wie eine normale Geradengleichung.
Um das besser zu verstehen zeichnest Du Dir das vielleicht mal kurz auf für
h = 4;
b = 8;
alpha = 30°;
sin(30°) = 1/2;
cos(1/2) = sqrt(3)/2
xR = 5;
yR = 6;
0 ≤ t1 ≤ h;
t1 |
gx(t1) |
gy(t1) |
0 |
2.54 |
2.27 |
1 |
2.04 |
3.13 |
2 |
1.54 |
4.00 |
3 |
1.04 |
4.87 |
4 |
0.54 |
5.73 |
Du berechnest also die x und die y Koordinaten in abhängigkeit von t1 und nicht y in Abhängigkeit von x so wie sonst. Ansonsten gehst Du aber genauso vor, das heißt Du hast die Werte für x und y und kannst so den Punkt in ein x-y-Koordinatensystem einzeichnen.
Nun zur Lösung deines Problems: Du kannst nun jedes beliebige Rechteck beschreiben mit Hilfe der Parameter, die oben stehen (h, b, etc.) mit jeder beliebigen Orientierung α. Dazu gehört ein Satz von vier Geradengleichungen mit jeweils einer Gleichung für die x und die y Komponente abhängig von dem Parameter ti.
Wenn Du nun wissen willst ob zwei Seiten g1 und g5 sich schneiden machst Du Folgendes:
Gleichung die Seite g1 beschreibt:
g1x = t1 *v1x +u1x;
g1y = t1 *v1y +u1y;
Gleichungen die g5 beschreiben:
g5x = t5 *v 5x +u5x ;
g5y = t5 *v5y +u5y;
Nun setzt Du g1x = g 5x und g 1y = g5y :
t1 *v1x +u1x = t 5 *v 5x +u5x;
t1 *v1y +u1y = t 5 *v5y +u5y;
Du hast also zwei lineare Gleichungssysteme mit zwei Unbekannten t1 und t5. Da die Restlichen Faktoren und Glieder bekannt sind (musst h, α, usw. einsetzen, siehe auch Bild 9 wie v1x usw. berechnet werden bzw. sich zusammensetzen) kannst Du nun t1 und t5 bestimmen. Falls Du nicht weißt wie das geht frag am besten nochmal.
Wenn die Geraden sich schneiden erhältst Du Werte für t1 und t5 (musst natürlich auch die spezialfälle bedenken, wenn sie z.B. identisch sind), dann schaust Du ob die errechneten Werte auch im Wertebereich liegen, also bei t1: 0 ≤ t1 ≤ h.
Ich denke jetzt hab ich das soweit erklärt wie ich das erklären wollte und es auch programmierbar sein sollte. Wenn Du Fragen hast, dann schreib bitte einen Kommentar. Bedenke bitte auch, dass ich zwar alles nochmal geprüft habe und auch stimmen sollte, aber es kann natürlich trotzdem noch ein Fehler irgendwo sein. Wenn Du was entdeckst oder Dir etwas komisch vorkommt, dann schreib bitte auch einen Kommentar.
lg JR