说这个问题的另一种方法:我如何找到长方体的长度,宽度和高度,因为它的对角线长度和2个旋转角度。如何计算给定两个旋转角度和速度的x,y,z速度?
这是一个3D游戏,用户可以改变向上/向下旋转(向上和向下箭头键),向左/向右旋转(向左和向右箭头键),物体可以加速和反向(Q和W) 。每帧,对象x,y,z根据当前速度和上/下和左/右旋转进行更新。
说这个问题的另一种方法:我如何找到长方体的长度,宽度和高度,因为它的对角线长度和2个旋转角度。如何计算给定两个旋转角度和速度的x,y,z速度?
这是一个3D游戏,用户可以改变向上/向下旋转(向上和向下箭头键),向左/向右旋转(向左和向右箭头键),物体可以加速和反向(Q和W) 。每帧,对象x,y,z根据当前速度和上/下和左/右旋转进行更新。
如果alpha
是左/右角度和beta
是向上/向下的角度,然后
v.x = speed * sin (alpha) * cos(beta)
v.y = speed * sin (beta)
v.z = speed * cos (alpha) * cos(beta)
假设,即没有旋转将返回方向(0,0,1)
我假定这个长方体是使用静态参照系测量的,其中对角线始于原点并延伸到其他点。如果没有,这个问题没有确定的答案,因为单独的对角线长度不能确定某个任意长方体的宽度,高度和长度,因为有无数个长方体可能具有相同的对角线。
这听起来像您所使用的球坐标系是什么:http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
从文章:
x = r sin θ cos φ
y = r sin θ sin φ
z = r cos θ
r
是你的对角线长度。您必须根据您的旋转角度确定θ
和φ
;它们可能不是适当的倾角和方位角。有关如何在球坐标中定义这些角度的详细信息,请参阅文章。
太棒了 - 听起来和其他答案一样。我会阅读球坐标系统以更好地理解它。谢谢 。 –
啊,就这样。很高兴它的工作! –
谢谢这么多!完美的作品 –