旋转后的3D坐标

达维德·萨博(DávidSzabó)

我有2分:C和P

我想围绕3维旋转P。

如何计算P的新头寸?

我有两个角度:“偏航”和“俯仰”。

偏航沿P沿'x'轴使P绕C旋转,因此它使P沿该点向左+向右移动。

Pitch在'y'轴上使C绕C移动,因此它使P沿该点上下移动。

Z,深度在+中向您移动,在-中远离您-

当然,我也想使其在“中间”位置工作,例如45度偏航和45度俯仰。

偏航角和俯仰角以DEG给出,然后转换为RAD(在此代码之前,因此该代码使用RAD)

p.x = c.x + Math.sin(yaw) * Math.sin(pitch);
p.y = c.y + Math.cos(yaw);
p.z = c.z + Math.cos(yaw) * Math.cos(pitch);

想象一个球体和一个点,我想在球体的表面上移动该点。

这有时起作用,有时不起作用。我想念什么?

抱歉,如果这是重复的,我不知道该搜索什么。

这是关于我的问题的小提琴:http : //jsfiddle.net/Jm6Lt/2/

计算蓝色球的位置,白色球绕红色球的中心旋转。

鲁兹·莱曼(Lutz Lehmann)

您写下的是C周围半径1的球面上的球坐标。

查找“旋转矩阵”和“给定旋转”,这些是将旋转给定点的操作。您要查找的操作类型将具有以下形式

P'=C+R*(P-C), 

其中R是旋转矩阵。


您得到的球坐标有些错误,它们应该是:

p.x = c.x + Math.sin(yaw) * Math.sin(pitch);
p.y = c.y + Math.cos(yaw);
p.z = c.z + Math.sin(yaw) * Math.cos(pitch);

然后,对于该载体(yaw, pitch)=(0,0)(0,1,0)(用C转换之前)和坐标描述其转动,首先在与周围偏航角x轴的yz平面和后,围绕与俯仰角与y轴。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章