三维中,一个点A(x0,y0,z0)已知,经过旋转后B(x1,y1,z1)也是已知,请问有谁知道如何计算A到底经过X轴旋转了多少度,y轴旋转了多少度,z轴

KingofMagic 2006-09-29 04:26:22
三维中,一个点A(x0,y0,z0)已知,经过旋转后B(x1,y1,z1)也是已知,请问有谁知道如何计算A到底经过X轴旋转了多少度,y轴旋转了多少度,z轴旋转了多少度才到B??
...全文
317 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
spirit_sheng 2006-10-02
  • 打赏
  • 举报
回复
奇怪, 结贴了看不到得分
spirit_sheng 2006-09-30
  • 打赏
  • 举报
回复
如果A, B都在单元坐标里, 所有单元坐标上的点的集合组成一个球面(我们称之为单位球面), 则A, B是这个球面上的两点.

旋转分三步, 第一步, 先绕x, 则, A绕 X轴旋转能够到达的点为一个圆(是单位球面与 x = x0 平面相交的圆) 记此圆为C1

我们再考虑最后一步,第三步, 则, 绕Z轴旋转能够到达B点的所有点也是一个圆(是单位球面与 z = z1平面相关的圆) 记此圆为C3

第二步, 绕Y轴旋转, 我们取第二个圆, 单位玩耍与 y = 0 相交的圆, 记为C2

则C1与C2有两个交点, 取其中一个点记为P12, C2与C3有两个交点, 取其中一个点记为P23

则整个旋转的过程可以是 A -> P12 -> P23 -> B
可以很容易求出关键点坐标如下
A( x0, y0, z0)
P12(x0, 0, +/- sqrt(1 - x0 * x0))
P23(+/- sqrt(1 - z1 * z1), 0, z1)
B( x1, y1, z1)
再求角度相当于在平面上求角度

注: x0 != 1 且 z1 != 1, 的情况下, 则C1的半径R1 和 C3 的半径 R3 均大于0, 设其中半径最小的为 Rmin, 则构造C2时的平面可以为 y = a ( -Rmin <= a <= Rmin)
也就是说, 此时旋转方法有无穷多种, 我以上的方法只不过是其中一个旋转方法






KingofMagic 2006-09-29
  • 打赏
  • 举报
回复
这不用说把,先绕x,在绕y,最后z
kobe1882 2006-09-29
  • 打赏
  • 举报
回复
总得说绕哪个轴旋转吧?
KingofMagic 2006-09-29
  • 打赏
  • 举报
回复
能不能给我你的QQ,我的15702153,A B都是单元坐标里。能具体讲一下怎么计算马?我不要理论,看不懂啊,摆脱了
XCOOL 2006-09-29
  • 打赏
  • 举报
回复
旋转矩阵可以根据绕轴旋转四元数得到。
XCOOL 2006-09-29
  • 打赏
  • 举报
回复
|A|=|B|已知,那么现在可以这样看,根据A×B和A*B得到旋转轴和在旋转轴上的转角,我们可以想象是在坐标被旋转了的Z轴上旋转,也就是说旋转轴是实先旋转了的Z轴,那么转角为Z轴上转角,同理根据这种假设得到旋转轴在X,Y上的转角就是X转角和Y转角,注意先后顺序。
KingofMagic 2006-09-29
  • 打赏
  • 举报
回复
或者知道旋转矩阵怎么算也可以?
XCOOL 2006-09-29
  • 打赏
  • 举报
回复
对于一个点来说,是多解的。因为结果是一个解集

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧