gpt4 book ai didi

c++ - 将 OpenGL 的 glRotated 转换为 Maya 的 cmds.rotate

转载 作者:行者123 更新时间:2023-11-28 07:41:19 25 4
gpt4 key购买 nike

我有一个 C++/OpenGL 程序,它以不同的旋转角度创建许多圆柱体,因此它们看起来都是相连的。我添加了一个导出方法来为 Maya 编写具有相同绘制方法的 Python 脚本,这样我就可以加载脚本。

我知道当 OpenGL 创建和旋转一个圆柱体时,它会将它与 Z 轴对齐并且它旋转和平移它的“基础”。

因此,在我的 Maya 转换过程中,我一直很小心地在进行任何转换之前移动轴心,并且将圆柱体预先对齐到 OpenGL 的标准(然后卡住转换,从而创建 OpenGL 基础)。

翻译似乎都移动到了正确的位置,但我担心我是否正确地进行了旋转函数之间的转换。我了解 Maya 和 OpenGL 都以度数进行旋转。然而,OpenGL中的函数是:

glRotated(angle, x, y, z);

在 Maya 的 Python 中:

cmds.rotate(x-deg, y-deg, z-deg);

所以我一直在做的是从 OpenGL 中获取角度并将其乘以 Maya 方法的给定轴:

cmds.rotate(angle * x, angle * y, angle * z);

我认为这会奏效并给我想要的东西。但旋转似乎仍然关闭。我找不到关于天气的良好解释,这能否按我预期的方式工作。那么谁能证实这种关系呢?

最佳答案

这通常不起作用,只有当旋转轴与其中一个主轴对齐时。

您的旋转以轴+角度给出,您需要将其转换为欧拉角。您可以在阅读之后手动执行此操作,例如在维基百科上,或者您可以构造一个 MQuaternion,使用 setAxisAngle() 方法(使用弧度,而不是度数),然后将其转换为 MEulerAngle。

关于c++ - 将 OpenGL 的 glRotated 转换为 Maya 的 cmds.rotate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15794839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com