Hoe de brekingswet (Snellius ) in 3dVector-vorm om te keren?

Moderator: physicalattraction

Reageer
Berichten: 1

Hoe de brekingswet (Snellius ) in 3dVector-vorm om te keren?

Is er een eenvoudige manier om de brekingswet (De wet van Snellius ) in 3dVector-vorm om te keren? M.a.w., als de invallende en uitgezonden 3d vectoren 𝐢 en 𝐭 (beide met norm = 1) bekend zijn, hoe vind je dan de normaalvector van het grensoppervlak (tussen media met brekingsindex n1 en n2, resp.) die nodig zijn om de gewenste richtingsverandering te bereiken door breking?

Ik heb nog geen simpele oplossing gevonden, dus elke suggestie wordt gewaardeerd. Wellicht dat in deze Youtube video een uitleg wordt gegeven maar ik heb geen wiskundige of programmer achtergrond, dus eventuele oplossingen met quaternionen kan ik zo snel niet op waarde schatten).
Als er een formule bestaat wil ik die uiteindelijk toepassen in een Python code in mijn CAD programma.
Afbeelding

Gebruikersavatar
Moderator
Berichten: 9.991

Re: Hoe de brekingswet (Snellius ) in 3dVector-vorm om te keren?

Ik kom op een normaalvector \(\vec{n}=\vec{i}+\frac{n_2}{n_1}\vec{t}\).
Die is dan nog niet genormeerd.

Gebruikersavatar
Moderator
Berichten: 9.991

Re: Hoe de brekingswet (Snellius ) in 3dVector-vorm om te keren?

Toelichting:
\(\frac{n_2}{n_1}=\frac{\sin \theta_1}{\sin \theta_2}\)

De normaalvector moet in het vlak van \(\vec{i}\) en \(\vec{t}\) liggen en er dus een lineaire combinatie van zijn: \(\vec{n}=b(\vec{i}+a\vec{t})\) waarin \(b=\frac{1}{|\vec{i}+a\vec{t}|}\) een factor is om de lengte 1 te maken.

De lengte van het kruisproduct van twee eenheidsvectoren is gelijk aan de sinus van de hoek ertussen.
\(\sin \theta_1=|\vec{i}\times \vec{n}|\) en \(\sin \theta_2=|\vec{t}\times \vec{n}|\)

\(\frac{n_2}{n_1}=\frac{|\vec{i} \times \vec{n}|}{|\vec{t} \times \vec{n}|}=\frac{b|\vec{i}\times\vec{i}+a\vec{i}\times\vec{t}|}{b|\vec{i}\times\vec{t}+a\vec{t}\times\vec{t}|}=\frac{|a\vec{i}\times\vec{t}|}{|\vec{i}\times\vec{t}|}\)

waaruit volgt dat \(a=\frac{n_2}{n_1}\)

Reageer