- 注册时间
- 2004-8-28
- 最后登录
- 1970-1-1
|
发表于 2012-8-4 00:21:44
|
显示全部楼层
2D的就把旋转轴定成(0,0,1),然后设旋转角是2a,可以旋转用四元数表示出来,假设是q。
然后已知的A点是(x,y,0),看成一个向量,用四元数表示为:A = x*i+y*j
转动后的B点是(x',y',0),四元数表示为:B = x'*i+y'*j
因此可以列出方程:B = q * A * q的共轭
然后按照四元数的乘法,代入各个部分,z和w大部分都是0,应该就消没有了,得到一个关于cos(a)和sin(a)的方程。简写做ca和sa。
我刚刚手算了一下,好像是:
ca * (ca * x - sa * y) - sa * (ca * y + sa * x ) = x'
sa * (ca * x - sa * y) + ca * (ca * y + sa * x) = y'
因为xyx'y'都是已知的,所以只有2个未知数ca和sa,但可惜不是二元一次方程组。
接下来就各种三角函数变来变去吧……能求出a是多少么?我三角函数太烂,就不算了……
四元数的表示还有四元数乘法的定义是指这里找的:
http://caterpillar.onlyfun.net/G ... aternionsRotate.htm |
|