我有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/
计算蓝色球的位置,白色球绕红色球的中心旋转。
您写下的是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] 删除。
我来说两句