2013-01-23 46 views
1

说这个问题的另一种方法:我如何找到长方体的长度,宽度和高度,因为它的对角线长度和2个旋转​​角度。如何计算给定两个旋转角度和速度的x,y,z速度?

这是一个3D游戏,用户可以改变向上/向下旋转(向上和向下箭头键),向左/向右旋转(向左和向右箭头键),物体可以加速和反向(Q和W) 。每帧,对象x,y,z根据当前速度和上/下和左/右旋转进行更新。

回答

3

如果alpha是左/右角度和beta是向上/向下的角度,然后

v.x = speed * sin (alpha) * cos(beta) 
v.y = speed * sin (beta) 
v.z = speed * cos (alpha) * cos(beta) 

假设,即没有旋转将返回方向(0,0,1)

+0

谢谢这么多!完美的作品 –

1

我假定这个长方体是使用静态参照系测量的,其中对角线始于原点并延伸到其他点。如果没有,这个问题没有确定的答案,因为单独的对角线长度不能确定某个任意长方体的宽度,高度和长度,因为有无数个长方体可能具有相同的对角线。

这听起来像您所使用的球坐标系是什么:http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates

从文章:

x = r sin θ cos φ 
y = r sin θ sin φ 
z = r cos θ 

r是你的对角线长度。您必须根据您的旋转角度确定θφ;它们可能不是适当的倾角和方位角。有关如何在球坐标中定义这些角度的详细信息,请参阅文章。

+1

太棒了 - 听起来和其他答案一样。我会阅读球坐标系统以更好地理解它。谢谢 。 –

+0

啊,就这样。很高兴它的工作! –