【发布时间】:2014-06-04 16:15:17
【问题描述】:
我有一个带有可移动相机的 3D 场景。我有该相机的 3D 坐标(x、y、z -> Y 是高度)以及 X 和 Y 旋转(上/下、左/右)。
我想得到我正在看的地板的坐标 (x1, z1)。
基本上,如果相机在 (0, 4096, 0)(4096 是高度)并且我的 xRotation 是 45º 并且我的 yRotation 是 0,我将看着地板上的点 (4096, 0, 0)
我试图对其进行编程,但我被三角函数卡住了。帮帮我吧。
以下代码是我现在所拥有的,但不能完全正常工作:
float x1, z1, anguloX, anguloY;
anguloX = (90 - Xrotation) / 180 * Pi;
anguloY = (90 - Yrotation) / 180 * Pi;
x1 = Yposition * tan(anguloX) * cos(anguloY);
z1 = Yposition * tan(anguloY) * cos(anguloY);
x1 += Xposition;
z1 += Zposition;
【问题讨论】:
标签: opengl 3d trigonometry perspectivecamera