【发布时间】:2013-08-12 10:36:20
【问题描述】:
我一直在处理 3D 空间中的点(X、Y、Z),并希望能够计算其中两个点之间的俯仰角和偏航角。
我当前的代码:
pitch = (float) (1/Math.tan((Y1 - Y2) / (Z1 - Z2)));
yaw = (float) (1/Math.tan((X1 - X2) / (Z1 - Z2)));
其中 X1、X2、Y1、Y2、Z1、Z2 在运行之前都是未知的,此时它们是从两个随机生成的点中收集的。
但由于某种原因,我的结果大错特错,我尝试了许多不同的组合并在谷歌上搜索了无数东西,但一无所获。
一些限制是:
- 音高只能低于或等于 90,或高于或等于 -90(90 => 音高 => -90)
- 从来没有不适用的滚动
- 在程序中声明之前,所有坐标都是未知的
- 俯仰沿 Z 轴开始,即向前/向后,向上俯仰为正
- Y 向上,Z 向前/向后,X 向侧面
- 偏航开始正对 Z 轴
这是我第一次使用 3D 角度,并且我了解到可以单独计算俯仰和偏航,就像在我的示例中一样,在两个不同的 2D 平面上,但这不起作用。
非常感谢任何帮助。
【问题讨论】:
标签: java computational-geometry angle