首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将偏航和俯仰结合在一起

将偏航和俯仰结合在一起
EN

Stack Overflow用户
提问于 2012-04-09 23:03:47
回答 1查看 735关注 0票数 3

为什么resultA不等于resultB?我不知道我做错了什么。你能给我一个解释吗?

代码语言:javascript
复制
float alpha = glm::radians(45.0f);

glm::mat4 xRot(glm::vec4(1, 0, 0, 0),
               glm::vec4(0, glm::cos(alpha), glm::sin(alpha), 0),
               glm::vec4(0, -glm::sin(alpha), glm::cos(alpha), 0),
               glm::vec4(0, 0, 0, 1));

glm::mat4 yRot(glm::vec4(glm::cos(alpha), 0, -glm::sin(alpha), 0),
               glm::vec4(0, 1, 0, 0),
               glm::vec4(glm::sin(alpha), 0, glm::cos(alpha), 0),
               glm::vec4(0, 0, 0, 1));

glm::vec4 vec(0, 0, -100, 1);

glm::vec4 resultA(0.0f);
glm::vec4 resultB(0.0f);

resultA = xRot  * yRot * vec; //(-70.7107, 50, -50, 1)
resultB = yRot  * xRot * vec; //(-50, 70.7107, -50, 1)
EN

回答 1

Stack Overflow用户

发布于 2012-04-09 23:07:30

一般情况下,3D旋转不会往返,除非在非常特殊的情况下。因此:

代码语言:javascript
复制
xRot * yRot != yRot * xRot

从本质上讲,您正在使用上面的内容来证明这一点:)

查看此处:http://en.wikipedia.org/wiki/Commutative_property

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10075201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档