工作当中遇到了一个算法方面的问题。什么问题呢?
那么,一般情况下,我们计算折射,都是已知入射光线的向量,给定的折射平面,求折射光线的向量。
这个根据折射定律公式,很容易求的。
这个在我之前的博客已经给出了求解的程序。
现在的问题是,我已知入射光线和出射光线,反过来求交点位置。这就是一个很复杂的数学问题了。不是不能求,是非常复杂。我用下面的图来描述。
已知A点坐标,B点坐标,AO的单位矢量,折射率n1,n2。
求O点坐标。
也可以理解为几何问题。也即是,已知h1,h2,d,求CO的长度。
根据折射定律 得到 Sinθ * n1 = Sinβ * n2
n1,n2分别是两个介质的折射率。假设n1是空气,n1=1;
所以Sinθ = Sinβ * n2
CO/AO = OD/OB * n2
求CO的长度。