另一种说出这个问题的方法是:如果长方体的长度,宽度和高度给定它的对角线长度和2个旋转角度,我该如何找到它。
这是一个3D游戏,用户可以改变向上/向下旋转(向上和向下箭头键),向左/向右旋转(向左和向右箭头键),对象可以加速和反向(Q和w)。每个帧,对象x,y,z根据它的当前速度和上/下和左/右旋转进行更新。
答案 0 :(得分: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)
答案 1 :(得分:1)
我假设使用静态参照系测量这个长方体,其中对角线从原点开始并延伸到其他点。如果没有,这个问题没有确定的答案,因为单独的对角线长度无法确定某个任意长方体的宽度,高度和长度,因为有无数个长方体可以具有相同的对角线。
听起来你正在使用的是球面坐标系:http://en.wikipedia.org/wiki/Spherical_coordinate_system#Cartesian_coordinates
来自文章:
x = r sin θ cos φ
y = r sin θ sin φ
z = r cos θ
r
是你的对角线长度。您必须根据旋转角度确定θ
和φ
;它们可能不是正确的倾角和方位角。有关如何在球坐标中定义这些角度的详细信息,请参阅文章。