| Autor |
Beitrag |
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.03.05 11:01
Moin moin,
ich habe `ne Ebene, zum Beispiel:
E: x = (2,4,1) + l(3,4,0) + k(8,1,5)
und einen Lichtstrahl, sprich ne Gerade:
G: x = (9,4,3) + s(3,5,2)
Die Größen sind jetzt willkürlich gewählt, spielen auch keine Rolle. Wie berechne ich nun den Richtungsvektor des an der Ebene reflektierten Lichtstrahls?
Danke im Vorraus!
P.S.: Bitte keine Libraries o.Ä. posten. Ich brauche den mathematischen Weg. Moderiert von raziel: Topic aus Sonstiges verschoben am Mo 28.03.2005 um 12:41
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 28.03.05 11:06
Schnittpunkt berechnen hilft da meist  . Und an dem den Schnittwinkel ausrechnen und die Gerade entsprechend drehen
AXMD
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.03.05 11:26
AXMD hat folgendes geschrieben: | | Und an dem den Schnittwinkel ausrechnen und die Gerade entsprechend drehen |
Und das ginge wie genau?
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 28.03.05 15:13
Die Geradengleichung in die Koordinatenform der Ebene einsetzen und dann gleichsetzen.
g = (1,2,3) + r * (4,5,6)
E: 7x+8y+9z=10
--> 7(1+4r) + 8(2+5r) + 9(3+6r) = 10
Danach nach R umstellen und das r in die Geradengleichung einsetzen.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.03.05 15:23
Aber das wäre dann doch die Schnittpunktberechnung oder? Die hast du mir ja schon mal gezeigt.
Aber jetzt geht es ja darum, mithilfe der Ebene, der Geraden und des Schnittpunktes, die Reflexionsgerade, insbesondere deren Richtungsvektor, zu ermitteln.
*hofft, dass BenBes Rechnung wirklich zur Schnittpunktbestimmung ist*
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Mo 28.03.05 15:24
Hab ich ja bereits oben geschrieben: Winkel berechnen und dann die Gerade um 2*Winkel drehen
AXMD
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.03.05 15:30
AXMD hat folgendes geschrieben: | | Hab ich ja bereits oben geschrieben: Winkel berechnen und dann die Gerade um 2*Winkel drehen |
Und wie berechnet man den Schnittwinkel und dreht eine Gerade in vektorieller Form um diesen Winkel?
Ich hab das Gefühl, wir drehen uns im Kreis. ^_^
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 28.03.05 15:51
Jip. Meine Rechnung ist für den Schnittpunkt Gerade\Ebene. Dieser Schnittpunkt ist weiterhin auch gleich der Stützvektor für die Reflexionsgerade.
Als nächstes spannst Du mit dem Lot der Ebene (7,8,9) und dem Einfallsvektor (4,5,6) eine Ebene auf, in der beide Vektoren liegen.
Danach berechnest Du ne Gerade auf dieser Ebene, die auf der einfallenden Gerade beginnt und das Lot der Ursprungsebene (an der Reflektiert wird) senkrecht schneidet.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| g L h \ | / -+----+----+- t X\ |Y /Z \ | / \ | / \|/ ------+------ E F |
Die Reflektionsgerade h geht dann durch die Punkte F und Z.
Z liegt auf t (Und zwar |XY|=|YZ| !!!), die die Strecke FL (L senkrecht auf E) senkrecht schneidet (im Punkt Y). X ist ein beliebiger Punkt auf g.
Ich hoffe, durch die Skizze wird klar, was ich meine ^^
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 29.03.05 09:05
BenBE hat folgendes geschrieben: | | Ich hoffe, durch die Skizze wird klar, was ich meine ^^ |
Ja, wird es. Werd mich gleich ma dran setzen.
Eine Frage hätt ich aber noch:
BenBE hat folgendes geschrieben: | | Lot der Ebene (7,8,9) und dem Einfallsvektor (4,5,6) |
Hast du dir die Zahlen jetzt ausgedacht oder stammt das Lot aus irgendeiner Berechnung? Wüsste dann schon gerne, wie man das Lot zu einer Ebene bestimmt.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Di 29.03.05 10:55
Das "Lot" d.h. die Normale der Ebene erhält man durchs Kreuzprodukt.
Ebene: a+l*u+k*v
Gerade: p+s*r (=>r ist der Richtungsvektor des Lichtstrahls (von der Ebene weggerichtet))
(Vektoren sind fettgedruckt)
Die Normale der Ebene (Kreuzprodukt):
n = u×v
Wie BenBE schon gesagt hat (?) geht man dann wie folgt vor: Man projiziert den Richtungsvektor r auf die Normale n mittels Skalarprodukt.
L = dot(r,n)/dot(n,n)*n;
Durch Verdopplung der Strecke XY erhält man dann die neue Richtung r' des reflektierten Strahls.
r' = r+2*(L-r);
Fertig ausgerechnet gibt das (ohne Gewähr, hab's eingetippt und berechnen lassen, hoffe es ist kein Fehler drin)
q = 2*(rx*nx+ry*ny+rz*nz)/(nx^2+ny^2+nz^2)
rx* = q*nx-rx
ry* = q*ny-ry
rz* = q*nz-rz
Dabei muss r von der Ebene weggerichtet sein (sonst in den letzten 3 Gleichungen das - durch + ersetzen)
Das Kreuzprodukt so definiert ist:
(ux,uy,uz)×(vx,vy,vz)=(uy*vz-uz*vy,uz*vx-ux*vz,ux*vy-uy*vx)=(nx,ny,nz)
|
|
|