指定方向和立方体的交点

来源:互联网 发布:第一行代码java 编辑:程序博客网 时间:2024/05/26 08:42

如上图所示,解题思路,已知一个点Eye为视线方向上的点,通过相机的视景体范围,确定视线方向上投影到视景体上的near和far点,即CStart,CEnd。立方体的三个维度已知,那么只需要根据CStart去求得与立方体的近似点InnerStart,CEnd求得与立方体的近似点InnerEnd.

if PtStart[0] > dimension.x || PtStart[0] < 0 || PPtStart[1] > dimension.y || PtStart[1] < 0 || PtStart[2] > dimension.z || PtStart[2] < 0for start in x,y,z ; dimension in x, y, z; i in 3 :if start < dimensiondistance = dimension - startelse if start < 0distance = 0 - start            if (distance)                InnerStart[i] = PtStart[i] + distance 

InnerEnd求法同上。

需要注意的是,需要求当前维度的距离的向量间隔值,dimension.x - PtStart.x = vector.x; distance / vector.x = t; 那么当每个维度需要靠近时需要把其他的方向的距离相应的移动t*vector.y和t*vector.z

0 0
原创粉丝点击