lineare Spigelung
-
Liebe Community
Ich sitze seit einer Weile an der Aufgabe und schaffe es nicht eine Formel aufzustellen.
Was wir haben:
Wir haben Punkt1 gegeben. Er ist immer P1(0|0)
Von Punkt 1 aus startet die "Linie"
Wir haben Punkt2 gegeben. Er ist jedoch immer unterschiedlich P(?|?)
Wir haben eine Collision an die die Linie apprallt.Aufgabe:
Stelle eine Formel auf welche den richtigen Punkt auf Collision berechnet damit Punkt1 und Punkt2 verbunden werden.Beachte Einfallswinkel gleich Ausfallswinkel.Skizze:
. ________
.|________| Collision
.
..............X Punkt2
. X Punkt1Schreibweise(muss nicht beachtet werden):
Pos(x,y) = vec2(x,y)
x von Pos = pos.x | y von Pos = pos.yIch hoffe ihr könnt mir helfen und ich habe euch genug Informationen gegeben.
Bei Fragen nur rausdamit ich beiß auch nichtgruß Jogurette
-
Ist vorgegeben, wo gespiegelt wird? Oder darf man sich das selber aussuchen?
Deine Skizze könnte man erkennen, wenn du die Code-Tags benutzen würdest.
-
Spiegel doch den Punkt P2 an der Collisionslinie (-> P2') und berechne dann den Schnittpunkt der Verbindungsgeraden P1 und P2' mit der Collisionsline.
Möchtes du mehr mathematischen Spass haben, wende das Fermatsche Prinzip an und betrachte die Aufgabe als Variationsproblem.
-
Ist der y-Wert vom Kollisionspunkt gegeben? Wenn ja wäre das eine Möglichkeit?:
pc.x = |p2.x - p1.x| / ((|p2.y - p.y| / |p1.y - p.y|) + 1) //pc ist der Kollisionspunkt
Wenn beide Punkte den gleichen y-Wert haben, komm ich auf die Hälfte der Strecke zwischen dem x-Wert von Punkt1 und dem x-Wert von Punkt2. Müsste stimmen.
-
Ich werde mal über die Möglichkeiten die ihr mir gegeben habt drüberschauen.
Sieht aufjedenfall vielversprechend aus ^^ und ja der y-Wert ist gegebenDanke euch 3, ihr habt mir sehr geholfen
gruß Jogurette
-
So ich habe nun mehrfach Taelis Formel ausprobiert und bei
p1 und p2 mit gleichem y-Wert kommt bei mir auch die richtige antwort raus aber nur wenn sie den gleichen y-Wert haben.
Wär echt super wenn du deine Formel nochmal durchgehen könntest
Natürlich nur wenn du Zeit/Lust hastHeute werde ich mir mal versuchen ScottZhangs Lösungsvorschlag zu verstehen ^^
ps. Taeli ich hoffe ich verstehe dich richtig wenn du mit p.y -> pc.y meinst
und das | klammern darstellen sollen ?
-
Ich habe mal kurz nachgerechnet, aber keine Garantie auf Vollständigkeit oder korrektheit:
P_1 = {x1,y1} P_2 = {x2,y2} P_3 = {x3,y3} P_13 = P1-P3 P_23 = P2-P3 <P_12|{1,0}> = <P_13|{1,0}> ------------ -------------- |P_12|*|e_1| |P_13| * |e_1| => x3,1 = (x2*y1+x1*y2 - (x1+x2)*y3) / (y1 + y2 -2*y3) x3,2 = (x2*y1 -x1 * y2 +x1*y3 -x2 *y3) / (y1-y2)