游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1913|回复: 3

请教一个四元数的一个问题

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-29 13:37:00 | 显示全部楼层 |阅读模式
刚刚开始学习四元数,遇到一道例题解到一半解不下去了,求前辈指点。

题目:求Quaternion绕轴(0.2,0.5,0.9)旋转π/4,写出旋转后的Quaternion

我做到一半:
设待旋转向量v = <x, y, z>,则其四元数vq = <0, x, y, z>。
设v2 = <0.2, 0.5, 0.9>,其长度为|n| = sqrt(0.2*0.2 + 0.5*0.5 + 0.9*0.9) = sqrt(1.1)
则单位向量v2’ = <0.2/sqrt(1.1), 0.5/sqrt(1.1), 0.9/sqrt(1.1)>
定义单位四元数q来表示绕轴v2’和旋转角度pi/4,则:
q = cos(pi/8) + sin(pi/8)*v2’
设在左手坐标系顺时针旋转,则:
v’q = q*vq*(q*) = ……

请问接下来我该怎么做?

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2011-1-29 23:47:00 | 显示全部楼层

Re:请教一个四元数的一个问题

如果这道题只是用来了解思路,你最后那个就是答案了。
如果一定要继续,那就只能展开你的q和q*。

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2011-1-30 12:18:00 | 显示全部楼层

Re:请教一个四元数的一个问题

多谢楼上的回答。
我在学习四元数时,讲到根据四元数的倒数,可以简化四元数旋转的计算。
即q*q-1 = 1 = q-1*q
q-1 = q*|q|2
如果q是单位四元数,则|q|2 = 1
于是q-1 = q*

上面其实我的q是单位四元数了,可我还是用不上这个公式,上面的q*vq*(q*)应该没发做交换律吧,是不是这个倒数的公式我用不上了,没法再化简了呢?

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2011-2-2 02:40:00 | 显示全部楼层

Re:请教一个四元数的一个问题

首先对于旋转来说,只有单位四元数才有意义。
然后你那个倒数公式是指四元数的逆吧。你上面的推导就是得出“单位四元数的逆和共轭是相等的”这个性质。
你这里用共轭才能进一步化简。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-16 13:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表