2

这个问题的另一种说法是:给定长方体的对角线长度和 2 个旋转角,我如何找到长方体的长度、宽度和高度。

这是一个 3d 游戏,用户可以更改上/下旋转(向上和向下箭头键)、左/右旋转(左和右箭头键)并且对象可以加速和反转(Q 和 w)。每一帧,对象 x、y、z 都会根据其当前速度以及上/下和左/右旋转进行更新。

4

2 回答 2

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)

于 2013-01-23T21:08:30.037 回答
1

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

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

来自文章:

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

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

于 2013-01-23T21:34:50.377 回答