游戏开发论坛

 找回密码
 立即注册
搜索
查看: 15060|回复: 5

[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

[复制链接]

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2012-11-17 14:07:00 | 显示全部楼层 |阅读模式
先确认一下,D3D里的欧拉角用的是YXZ的旋转顺序是吧?即先拿Y旋转矩阵乘以X旋转矩阵,最后将结果乘以Z旋转矩阵.
如果是这样的话,那么我的代码就写对了

以下是我的2个测试结果:

结果1:
假如是YXZ的矩阵相乘顺序,则:
若X为90度,则Y和Z不论多少,最终都将在一个平面上旋转,
若Y为90度,则X和Z不论多少,都不会产生万向锁

结果2:
假如是XYZ的矩阵相乘顺序,则:
若X为90度,则Y和Z不论多少,都不会产生万向锁
若Y为90度,则X和Z不论多少,最终都将在一个平面上旋转,

(从上面两个结果可以感觉到,这东西实在复杂.)


问题1:如何理解XYZ和YXZ的不同几何意义?
问题2:假如是YXZ的矩阵相乘顺序,那么为什么X为90度时,Y和Z无论是多少,都在一个平面上旋转?


关于问题2:
我若拿现实的物体做旋转演示的话,和程序里计算的结果并不一样:
假设是一个木偶,它面向自己,并处于站立状态,
先让他绕X轴旋转90度,结果这木偶将是头部向后仰,直到完全躺在地上,然后我在让他绕Y轴旋转,那么他将沿侧面方向翻滚,而如果让他绕Z轴旋转,若Y为0度,则应该是在水平面上,做圆周旋转.可是程序里YXZ的相乘结果并不是这样,他的结果是,不论Y和Z是多少,这个木偶都将沿着侧面方向翻滚,这就是我的困惑所在.

另外,我拿这个木偶怎么旋转,都不会产生万向锁(比如先绕X旋转90度,然后通过改变Y和Z,我可以让木偶的头指向任何方向),而在程序里,却会产生万向锁.

不知道有没有朋友像我一样,对这个欧拉角旋转,对这个万向锁,对这个矩阵相乘顺序,有着类似的困惑??

11

主题

95

帖子

658

积分

高级会员

Rank: 4

积分
658
发表于 2012-11-20 11:16:00 | 显示全部楼层

Re:[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html  看这个解释

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2012-11-21 19:57:00 | 显示全部楼层

Re: Re:[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

秋风扫走廊: Re:[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html  看这个解释



这视频我看了很多遍了,越看越不懂.
如果要说能看懂,那是能看懂他在向你展示什么.
然而我对欧拉角的困惑依然存在.正如我说的那样,程序里的演示和现实的演示结果不一样,现实中,怎么都不会有万向锁的问题,可程序却会有.

为什么视频无法让我看懂?
很简单,因为欧拉角对我来说就是等价于XYZ三个旋转矩阵的相乘,我实在无法把这个运算和视频里那个机械模型做概念上的对应.
再加上,XYZ3个矩阵相乘的顺序若不一样,那结果也不一样,这些都很难通过那个视频去真正理解.

31

主题

257

帖子

1752

积分

金牌会员

申城谍影

Rank: 6Rank: 6

积分
1752
QQ
发表于 2012-11-22 12:31:00 | 显示全部楼层

Re: [求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

[em22]

你想多了,万向节锁一般是相对转动多次造成的,

只要记录下X、Y、Z轴上,相对原始状态,的转动角度,

每次都重新转,而不是相对的,多次转,就没这问题。。。。。。。。

4

主题

1111

帖子

1498

积分

金牌会员

Rank: 6Rank: 6

积分
1498
发表于 2012-11-22 15:53:00 | 显示全部楼层

Re:[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

万象锁就是每一次都重新计算导致的
所以大多数都用四元数而不是euler

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
 楼主| 发表于 2012-11-23 13:55:00 | 显示全部楼层

Re:[求教]关于欧拉角,万向锁,XYZ和YXZ矩阵相乘顺序等问题

是我太笨了,我还是理解不了,这其中的问题症结在何处.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 10:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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