如何计算观察平面上的点到场景中平面上的逆正交投影?

时间:2016-07-07 00:05:23

标签: geometry projection quaternions orthographic

假设我有一个观看平面vn,其方向为q1,并且场景un中的平面的方向为q2

q1q2是四元数。

如何找到未知点ux, uy, uz,使proj_u_plane_vn等于已知点vx, vy, 0

通过找到相对方向q2-q1

,问题会更简单吗?

现在我正在尝试用i,j和k值来做这件事,但它看起来有点矫枉过正,我没有看到答案弹出而没有做反向触发,不是我会介意,但我'我正在寻找更优雅的解决方案。

提前致谢。 :)

1 个答案:

答案 0 :(得分:1)

您有以下值:

 vx, vy, vz; //These are the points in the viewing plane, which you know.
 q1, q2;     //The vectors describing the viewing and scene planes.

如您所料,平面之间投影的技巧是使用相对方向。

您应该使用平面之间的偏移(当您找到相对方向时)来处理场景平面,就像它偏离前平面(观察平面)一样。这不仅更容易可视化,而且还会使您查找的答案更具相关性。

了解这一点,您可以使用相对方向在以下等式中定义n:

 q_proj = q - dot(q - p, n) * n

点q =(x,y,z)投影到由点p =(a,b,c)和法线n =(d,e,f)给出的平面上。

请注意,此答案已从此处删除:How do I find the orthogonal projection of a point onto a plane