一个球面坐标系上的有一个点,用经纬度记录其坐标:(j,w),然后这个球面坐标系进行旋转,旋转成新的球面坐标系,问那个点原来的位置在新坐标系中的坐标是多少?
    举个例子,一个地球仪摆在桌子上,在天花板上吊下来一小团棉花,正好在北京上面(经纬度是(115,40)),然后棉花不动,地球仪转动(例如绕自己z轴先转30度,再绕x轴转20度,再绕y轴转10度)。地球仪转到了新的位置(形成了新的坐标系),问那团棉花现在在什么地方的上面了?那个地方在地球仪上是什么经纬度?(即点在新的球面坐标系中的坐标?)
    怎么求?谁能推出个公式来看看?想得我头都晕了都没想出来。

解决方案 »

  1.   

    如果你学过3D游戏,这个公式应该很好算。(j,w)代表的是角度,从球心位置可以很容易算出这个点相对球心的向量。你可以先把球放正,例如以球心作为原点,(0,0)经纬度放在任意一个坐标轴(X/Y/Z)上面,假设放在Z轴负方向,它的值正好是(0,0,-radius),把这个向量分别绕X/Y轴旋转j/w度(乘以一个旋转矩阵即可),得到的向量就是(j,w)点相对球心的向量,然后再次乘以一个球的任意旋转矩阵,得到的就是新位置坐标。如果球心不在新坐标系的原点,只要把算出的新向量加上球心坐标即可。