光线折射公式推导:Snell‘s Law |
您所在的位置:网站首页 › 经典条件反射公式S-R是什么意思 › 光线折射公式推导:Snell‘s Law |
光线折射公式推导:Snell’s Law
设 入射光 i \mathbf{i} i 和 折射光 t \mathbf{t} t 均为单位向量,由Snell’s law可知 η i sin θ i = η t sin θ t \eta_i \sin \theta_i = \eta_t \sin \theta_t ηisinθi=ηtsinθt 。 其中 η i , η t \eta_i,\eta_t ηi,ηt 为反射系数(typically air = 1.0, glass = 1.3–1.7, diamond = 2.4)。 因为 sin θ i = ∣ i ∥ ∣ ∣ i ∣ , sin θ t = ∣ t ∥ ∣ ∣ t ∣ \sin\theta_i=\cfrac{|\mathbf{i}_{\parallel}|}{|\mathbf{i}|},\ \sin\theta_t=\cfrac{|\mathbf{t}_{\parallel}|}{|\mathbf{t}|} sinθi=∣i∣∣i∥∣, sinθt=∣t∣∣t∥∣ ,故: η i ∣ i ∥ ∣ ∣ i ∣ = η t ∣ t ∥ ∣ ∣ t ∣ η i ∣ i ∥ ∣ = η t ∣ t ∥ ∣ \begin{matrix} \eta_i \cfrac{|\mathbf{i}_{\parallel}|}{|\mathbf{i}|} = \eta_t \cfrac{|\mathbf{t}_{\parallel}|}{|\mathbf{t}|} \\ \eta_i |\mathbf{i}_{\parallel}| = \eta_t |\mathbf{t}_{\parallel}| \\ \end{matrix} ηi∣i∣∣i∥∣=ηt∣t∣∣t∥∣ηi∣i∥∣=ηt∣t∥∣ 又因 i \mathbf{i} i 和 t \mathbf{t} t 平行且方向相同: η i ⋅ i ∥ = η t ⋅ t ∥ t ∥ = η i η t ⋅ i ∥ = η i η t ( i + cos θ i ⋅ n ) \begin{matrix} \eta_i \cdot \mathbf{i}_{\parallel} &=& \eta_t \cdot \mathbf{t}_{\parallel}& \\ \mathbf{t}_{\parallel} &=& \cfrac{\eta_i}{\eta_t} \cdot \mathbf{i}_{\parallel} \\ &=& \cfrac{\eta_i}{\eta_t} (\mathbf{i}+\cos \theta_i\cdot \mathbf{n} ) \end{matrix} ηi⋅i∥t∥===ηt⋅t∥ηtηi⋅i∥ηtηi(i+cosθi⋅n) 其中 i ∥ = i ⋅ n ∣ i ∣ ∣ n ∣ n = cos θ i ⋅ n \mathbf{i}_{\parallel}=\cfrac{\mathbf{i}\cdot \mathbf{n}}{|\mathbf{i}| |\mathbf{n}|}\mathbf{n}=\cos \theta_i \cdot \mathbf{n} i∥=∣i∣∣n∣i⋅nn=cosθi⋅n. 又因 t = t ⊥ + t ∥ \mathbf{t}=\mathbf{t}_{\perp}+\mathbf{t}_{\parallel} t=t⊥+t∥ 且 ∣ t ∣ 2 = ∣ t ⊥ ∣ 2 + ∣ t ∥ ∣ 2 |\mathbf{t}|^2=|\mathbf{t}_{\perp}|^2 + |\mathbf{t}_{\parallel}|^2 ∣t∣2=∣t⊥∣2+∣t∥∣2 : ∣ t ⊥ ∣ 2 = ∣ t ∣ 2 − ∣ t ∥ ∣ 2 ∣ t ⊥ ∣ = 1 − ∣ t ∥ ∣ 2 t ⊥ = − 1 − ∣ t ∥ ∣ 2 ⋅ n \begin{matrix} |\mathbf{t}_{\perp}|^2 &=& |\mathbf{t}|^2-|\mathbf{t}_{\parallel}|^2 \\ |\mathbf{t}_{\perp}| &=& \sqrt {1-|\mathbf{t}_{\parallel}|^2} \\ \mathbf{t}_{\perp} &=& -\sqrt {1-|\mathbf{t}_{\parallel}|^2}\cdot \mathbf{n} \\ \end{matrix} ∣t⊥∣2∣t⊥∣t⊥===∣t∣2−∣t∥∣21−∣t∥∣2 −1−∣t∥∣2 ⋅n 从而: t = t ∥ + t ⊥ \mathbf{t}=\mathbf{t}_{\parallel}+\mathbf{t}_{\perp} t=t∥+t⊥ // r_in 为射入物体的光线 vec3 refract(const vec3& r_in, const vec3& outward_normal, double etai_over_etat) { double cos_thetai = dot(-r_in, outward_normal); vec3 r_out_parallel = etai_over_etat * (r_in + cos_thetai * outward_normal); vec3 r_out_perp = -sqrt(1.0 - r_out_parallel.length_squared()) * outward_normal; return r_out_perp + r_out_parallel; }也可进一步化简: t = t ∥ + t ⊥ = η i η t ⋅ ( i + cos θ i ⋅ n ) − 1 − ∣ i ∥ ∣ 2 ⋅ n = η i η t ⋅ ( i + cos θ i ⋅ n ) − 1 − sin 2 θ t ⋅ n = η i η t ⋅ i + ( η i η t cos θ i − 1 − sin 2 θ t ) ⋅ n \begin{matrix} \mathbf{t} &=&\mathbf{t}_{\parallel}+\mathbf{t}_{\perp} \\ &=&\cfrac{\eta_i}{\eta_t} \cdot (\mathbf{i}+\cos \theta_i\cdot \mathbf{n}) -\sqrt {1-|\mathbf{i}_{\parallel}|^2}\cdot \mathbf{n} \\ &=&\cfrac{\eta_i}{\eta_t} \cdot (\mathbf{i}+\cos \theta_i\cdot \mathbf{n}) -\sqrt {1-\sin ^2\theta_t}\cdot \mathbf{n} \\ &=&\cfrac{\eta_i}{\eta_t} \cdot \mathbf{i}+\left (\cfrac{\eta_i}{\eta_t} \cos \theta_i -\sqrt {1-\sin ^2\theta_t} \right) \cdot \mathbf{n} \end{matrix} t====t∥+t⊥ηtηi⋅(i+cosθi⋅n)−1−∣i∥∣2 ⋅nηtηi⋅(i+cosθi⋅n)−1−sin2θt ⋅nηtηi⋅i+(ηtηicosθi−1−sin2θt )⋅n 由Snell’s law公式可得 sin θ t = η i η t ⋅ sin θ i \sin \theta_t=\cfrac{\eta_i}{\eta_t} \cdot \sin \theta_i sinθt=ηtηi⋅sinθi, t = η i η t ⋅ i + ( η i η t cos θ i − 1 − ( η i η t ) 2 sin 2 θ i ) ⋅ n = η i η t ⋅ i + ( η i η t cos θ i − 1 − ( η i η t ) 2 ( 1 − cos 2 θ i ) ) ⋅ n \begin{matrix} \mathbf{t} &=&\cfrac{\eta_i}{\eta_t} \cdot \mathbf{i}+ \left ( \cfrac{\eta_i}{\eta_t} \cos \theta_i -\sqrt {1-(\cfrac{\eta_i}{\eta_t})^2\sin^2 \theta_i}\ \right ) \cdot \mathbf{n} \\ &=&\cfrac{\eta_i}{\eta_t} \cdot \mathbf{i}+ \left (\cfrac{\eta_i}{\eta_t} \cos \theta_i -\sqrt {1-(\cfrac{\eta_i}{\eta_t})^2(1-\cos^2 \theta_i)}\right ) \cdot \mathbf{n} \\ \end{matrix} t==ηtηi⋅i+⎝⎛ηtηicosθi−1−(ηtηi)2sin2θi ⎠⎞⋅nηtηi⋅i+⎝⎛ηtηicosθi−1−(ηtηi)2(1−cos2θi) ⎠⎞⋅n 其中 cos θ i = i ⋅ n ∣ i ∣ ∣ n ∣ = i ⋅ n \cos\theta_i=\cfrac{\mathbf{i}\cdot \mathbf{n}}{|\mathbf{i}| |\mathbf{n}|}=\mathbf{i}\cdot \mathbf{n} cosθi=∣i∣∣n∣i⋅n=i⋅n 。 全反射现象 Total internal reflection对于Snell’s law 的公式 sin θ t = η i η t ⋅ sin θ i \sin \theta_t=\cfrac{\eta_i}{\eta_t} \cdot \sin \theta_i sinθt=ηtηi⋅sinθi ,当空气中的反射率大于物体内的反射率的时候,有可能会出现 η i η t ⋅ sin θ i > 1 \cfrac{\eta_i}{\eta_t} \cdot \sin \theta_i>1 ηtηi⋅sinθi>1 的情况。 但是 sin θ t \sin\theta_t sinθt 的值一定是小于1的,故等式不可能成立。这个时候光线应该被反射,而不是折射。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |