将平面从一个法线旋转/平移到另一个法线

时间:2013-10-30 09:22:20

标签: graphics 3d geometry linear-algebra

我有一个法线为(0,1,0)的平面,即它是一个x-z平面。我有一个新的法线和距离。我想将原始平面转换为新平面法线/距离。

为了计算旋转,我简单地取两个法线的叉积,并通过做点积来得到角度。然后我旋转它。如何沿着新法线移动飞机?如果我的原始平面起源于(0,0,0),我是否只将其翻译为(Nx * d,Ny * d,Nz * d)(其中N =新法线,d =距离原点的距离)?< / p>

1 个答案:

答案 0 :(得分:1)

  

如何沿新法线移动飞机?

我认为您的建议是正确的。

假设您使用单位法线距离表示平面,该距离是从原点到平面的距离。然后,您可以执行以下任何翻译,

m_distance += m_normal.Dot(translation); \\ translation will be (Nx*d, Ny*d, Nz*d) in your case. 
m_normal; \\ normal stay the same, as translation won't change the direction of the plan.

在这种情况下实际上是m_distance = m_distance + d。