如何创建一个旋转矩阵,将 X 旋转 a、Y 旋转 b、Z 旋转 c?

发布于 2024-10-06 04:15:06 字数 174 浏览 3 评论 0原文

如何创建一个旋转矩阵,将 X 旋转 a、Y 旋转 b、Z 旋转 c?

我需要公式,除非您使用 ardor3d api 的函数/方法。

矩阵像这样设置

xx, xy, xz,
yx, yy, yz,
zx, zy, zz

四元数也可以。

How would I create a rotation matrix that rotates X by a, Y by b, and Z by c?

I need to formulas, unless you're using the ardor3d api's functions/methods.

Matrix is set up like this

xx, xy, xz,
yx, yy, yz,
zx, zy, zz

A Quaternion is fine too.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

在风中等你 2024-10-13 04:15:06

请参阅维基百科。它为每个旋转轴提供单独的矩阵。但是 X*(Y*(Z*v))) 当然等于 (X*Y*Z)*v,因此您可以获得单个旋转矩阵R 为R=X*Y*Z

See Wikipedia. It gives separate matrices for each axis of rotation. But X*(Y*(Z*v))) is of course equal to (X*Y*Z)*v, so you can get a single rotation matrix R as R=X*Y*Z.

云雾 2024-10-13 04:15:06

这对你有用吗?

glrotate(c, 0, 0, 1); // with respect to Z axis
glrotate(b, 0, 1, 0); // with respect to Y axis
glrotate(a, 1, 0, 0); // with respect to X axis

Does this work for you?

glrotate(c, 0, 0, 1); // with respect to Z axis
glrotate(b, 0, 1, 0); // with respect to Y axis
glrotate(a, 1, 0, 0); // with respect to X axis
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文