游戏开发论坛

 找回密码
 立即注册
搜索
楼主: moriya

求助:四元?档募负我饬x?

[复制链接]

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2007-1-28 19:12:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

4圆,哦拉,矩阵三种方式各有优缺点,4元和矩阵用的多些,O拉用的少,因为O拉的死结是万向锁.矩阵存储空间比四元大,四元不如矩阵贴近低层,在低层仍然要将4元转换为距阵.

15

主题

83

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2007-1-29 01:21:00 | 显示全部楼层

Re: 求助:四元?档募负我饬x?

moriya: 求助:四元?档募负我饬x?

moriya 求助:四元?档募负我饬x?

各位大大,
      最近我想用四元?底???活相机,但是始?弄不明白四...

不要对里面的3个虚部感到奇怪,那只是一个符号,实数也可以加个符号表示。在抽象代数里,四元数是一个环。在你所说的运用里,他仅仅只是一个记录信息的结构,记录了 空间一个点 围绕 一个向量 旋转的 弧度。本质是一种空间变换

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-1-29 11:50:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

Advanced Animation with Direct  (Chapter 7)关于刚体力学运用于肢体连接的,里面讲了很多关于的quaternion的知识,这章内容十分辣手,看了感觉一知半解。大学物理学的太烂,唉....

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-1-29 11:56:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

楼主如果只是为了做相机的转矩操作,可以看看翁云兵的那本教材,是原著翻译成中文的,我看过,里面有个灵活的摄像机的例子写的不错,我一直都在用,后来我自己还写了个游戏角色摄像机跟随的Flowcarmer,就借鉴了很多例子里面的思想

12

主题

217

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
 楼主| 发表于 2007-1-31 00:47:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

???巧细魑坏?椭?本不想再水一把,???解?Q了如不?碇x?你??的?,??在不厚道.

1

主题

17

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2009-11-12 18:16:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

四元数的几何意义
1
假设向量三维向量A[Xi+Yj+Zk],A旋转t度之后的向量B[X'i+Y'j+Z'k],A,B模|A|=|B|=r,另垂直于A,B所在平面的转轴方向单位向量为e,转动方向与转轴方向遵循右手定则,求向量B?
A.B = r平方*cos-t;点积
A X B = e*r平方*sin-t;叉积
BA的直乘 = -A.B + A X B = -r平方*cos-t + e*r平方*sin-t
B = (-r平方*cos-t + e*r平方*sin-t) A的倒数
  = (-r平方*cost + e*r平方*sin-t)-A / r平方
  = (cost+esint)A (式1)
2
可以看出一个向量旋转之后的向量可以表示为一个四元数与向量本身A的乘积
对任意四元数
A = W + Xi+Yj+Zk;
设 a = Xi+Yj+Zk;p = |a| = (X平方+ Y平方 + Z平方)开平方
则 a = p * e(单位向量)
R = (W平方 + X平方+ Y平方 + Z平方)开平方 = (W平方 + p平方)开平方
设 cos-t = W / R ; sin-t = P / R;
则 A = W + Xi+Yj+Zk = R*cos-t + pe = R*cos-t + sin-t*R*e;
     = R(cos-t + sin-t*e);(式2)对照式1可以看到式2与式1前半部分相同,所以任何四元数都表示一个向量旋转。

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2009-11-13 19:44:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

3
求任意向量A 饶单位向量e旋转t度之后的向量B?
向量B可以看成向量A与单位向量e平行的分量a和与单位向量e平行的分量b旋转t度的合成.
由(cost+esint)A (式1)可知道B = a + b = (A.e)e + (cost+esint)(A x(A x e));向量的点积与叉积的定义
                             = -1/2(Ae+eA)e + (cost+esint)(e x 1/2(Ae-eA));
                             = -1/2(eAe - A) + (cost+esint)(1/2(1/2(e(Ae-eA) - (Ae-eA)e)));  
                             = 1/2(A-eAe) + (cost+esint)(1/2(1/2(eAe+A +A + eAe)));
                             = 1/2(A-eAe) + (cost+esint)(1/4(2eAe+2A));
                             = 1/2(A-eAe) + (cost+esint)(1/2(eAe+A);
                             = 1/2(A-eAe  + costeAe + costA + esinteAe + esintA);
                             = 1/2(A-eAe  + (cost-1)eAe + costA -sintAe + sinteA);
\                            = 1/2((1+cost)A + sinteA - sintAe + (cost-1)eAe);

设 p = x+ey;q = m+en;
pAq = (x+ey)A(m+en);
    = xAm + xAen + eyAm+eyAen;
    = xmA + xnAe +ymeA + yneAe;
比较1/2((1+cost)A + sinteA - sintAe + (cost-1)eAe);与= xmA + xnAe +ymeA + yneAe;
xm = 1/2(1+cost)
xn = -1/2(sint);
ym = 1/2sint
yn = 1/2(cost-1);
解方程
x =
y =
m =
n =
可以看到任何向量A 饶单位向量e旋转t度之后的向量B = (PAQ)
P与Q为四元数

   
   
                             

80

主题

173

帖子

189

积分

注册会员

Rank: 2

积分
189
发表于 2009-11-13 19:52:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

里边用的
AB = -A.b + A x B
BA = -A.B + B x A

A.b = -1/2(AB +BA);
A x B = 1/2(AB-BA);
AB为直乘 A.b点积 A x b 差积

13

主题

312

帖子

312

积分

中级会员

Rank: 3Rank: 3

积分
312
发表于 2009-11-13 22:29:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?


支持一下 :〉


-------------------------------------------------------------------------------------------

欢迎访问开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community(图形开源社区),聚焦领域(focus domain)包括:
  * GPU Architecture(图形处理器体系结构)
  * Graphics Algorithm(图形算法)
  * GPGPU Programming (面向通用的图形处理器编程)
  * Open Source Rendering Engine(开源渲染器)
  * Open Source GPU Simulator/RTL Implement(开源GPU模拟器

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2009-11-18 03:29:00 | 显示全部楼层

Re:求助:四元?档募负我饬x?

ls明显醉翁之意不在酒。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-18 01:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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