发现方向向量的光芒平面交叉点

时间:2014-04-20 10:54:33

标签: c++ vector geometry raytracing plane

我需要计算光线和平面的交点, 我给了以下 - 平面上的法线向量,平面上的一个点,我的光源点在空间中 就是这样。 现在我知道为了计算交点,我需要从光源到交叉点的方向向量V,但我不知道我怎么能找到它,因为通常为了找到方向向量我会计算 V =(intersectionPoint - sourcePoint) 但这次我没有交点... (为了使它更容易理解,我有 - P0,N,Q0,试图得到V和P.

enter image description here

提前感谢!

1 个答案:

答案 0 :(得分:0)

我认为光线垂直于平面,否则你的问题没有多大意义。如果是这种情况,那么V = +/- N。

位于平面内的点 P 均满足等式:

< P N > =< Q0 N >

其中<,>表示点积。

另一方面,射线上的点满足等式:

P = P0 + t N

对于 t 的某些实际值。

将你得到的两个 t

组合在一起

t =< N Q0 - P0 > /< N N >

t 的符号决定 V

V =签名( t N

通过重复使用光线方程式得到交点 P

P = P0 + t N