找到矩形角,给定平面方程,高度和宽度

时间:2014-03-31 18:32:26

标签: math vector 3d plane vertices

基本上我想让矩形平面始终面对一个物体。

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值?

1 个答案:

答案 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

请注意,当矩形直接位于应该面对的对象的上方或下方时,此方法具有奇点。如果合适,你应该检查一下,然后处理它,但在你的场景中是有意义的。