2013-10-30 37 views
0

我有一个平面,其法线为(0,1,0),即它是一个x-z平面。我有一个新的常态和距离。我想将我的原始平面转换为新的平面法线/距离。将平面从一个法线旋转/翻译到另一个

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

+0

听起来对我来说,假设原来的飞机经过原点... – Alnitak

+1

这个问题似乎是题外话,因为它属于math.stackexchange.com – Alnitak

回答

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在这种情况下。

相关问题