我正在尝试相对于原点 (0,0,0) 在 3D 空间中定位一个点。我有 3 个值来计算这一点:关于 x 和 y 轴的旋转度数以及“视距”。使用这些值,我如何定位 3D 空间中相对于原点的点?我尝试过使用基本的三角函数,但结果似乎是随机的。下图直观地说明了需要做什么。
- 'vd' 是“视距”
- 'c' 是价值持有者
- '(x,y,z)' 是我要查找的坐标
我要做的是找到玩家在一定距离外注视的点(在玩家的直接视线中找到一定距离外的点)。请记住,围绕 x 和 y 轴的旋转不断变化,但视图距离保持不变。如果有人对此有任何建议、方法或需要澄清,请在下面发表评论/回答。
我在 LWJGL 中这样做,我使用的代码如下:
float c = (float)(Math.cos(Math.toRadians(A00.rot.y)) * view_distance);
locate.y = (float)(Math.sin(Math.toRadians(rot.y)) * view_distance);
locate.x = (float)(Math.cos(Math.toRadians(rot.x)) * c);
locate.z = (float)(Math.sin(Math.toRadians(rot.x)) * c);
编辑:
我的问题是这个当前的设置由于某种原因不起作用。数学对我来说似乎是合理的,但我在图表的实际设置中一定有什么问题..