基本上我想让矩形平面始终面对一个物体。
1)我找到了我的平面方程(ax + by + cz + d = 0)
2)我有一个矩形的中心点(P0 =(x0,y0,z0)),它位于平面上。
3)我有矩形的宽度和高度。 (W,H)
4)我知道矩形的顶部两个角将具有相等的Y值,这也适用于底部2个角。 (Y是我的上下轴,矩形的顶部和底部线将始终与x,z平面平行)
有谁知道如何找到四个角C1,C2,C3,C4的x,y,z值?
答案 0 :(得分:2)
计算从平面中心到要面对的对象的矢量。调用该向量V.然后归一化(V)=(a,b,c)并且d = -a * x0-b * y0-c * z0。你有你飞机的等式。
现在您可以根据需要旋转飞机。如果你让飞机有0滚动(也就是说,只修改偏航和俯仰),你可以采用世界“向上”向量(0,0,1)的标准化叉积和标准化(V)得到矩形的水平向量U.取标准化(V)和U的标准化叉积得到矩形的垂直向量W.
矩形的角落现在是:
C1 = P0 +(宽度/ 2)* U +(高度/ 2)* W
C2 = P0 +(宽度/ 2)* U - (高度/ 2)* W
C3 = P0 - (宽度/ 2)* U +(高度/ 2)* W
C4 = P0 - (宽度/ 2)* U - (高度/ 2)* W
请注意,当矩形直接位于应该面对的对象的上方或下方时,此方法具有奇点。如果合适,你应该检查一下,然后处理它,但在你的场景中是有意义的。