1

我正在尝试将一个向量从所述顶点投影到该向量末尾的未知顶点。

已知:向量的长度、起始顶点坐标、角度(偏航、滚动、俯仰)。未知数:在向量末尾终止顶点坐标。

在 2D 中,我可以通过以下方式完成它:

 Target.X = Source.X + (sin(Facing*DEG2RAD)*Distance);
 Target.Y = Source.Y - (cos(Facing*DEG2RAD)*Distance);

矩阵似乎是矫枉过正。我有一些对 3D 来说效果不佳的东西,但它不准确,这让我相信我没有整体公式的所有适当元素。

 Target.Z = Source.Z - (sin(Pitch*DEG2RAD)*Distance);

参考:面对/俯仰以度为单位(乘以 DEG2RAD,即 pi/180)。

任何/所有帮助表示赞赏。谢谢。

4

1 回答 1

2

您必须更正 x 和 y 坐标(将它们投影回 x/y 平面):

Target.X = Source.X + Distance * cos(Pitch * DEG2RAD) * sin(Facing * DEG2RAD);
Target.Y = Source.Y - Distance * cos(Pitch * DEG2RAD) * cos(Facing * DEG2RAD);
Target.Z = Source.Z - Distance * sin(Pitch * DEG2RAD);
于 2012-06-19T20:38:35.463 回答