我有一个使用OpenGL的可视化程序,我使用glRotated进行旋转。 我有Quaternion数据用于旋转,但我不知道如何将其应用于glRotated函数。 我需要先进行转换吗?如果是这样,我该怎么办?
答案 0 :(得分:1)
您需要将四元数转换为旋转矩阵。 见Convert Quaternion rotation to rotation matrix?
答案 1 :(得分:1)
最好的方法是停止使用已弃用的固定功能管道功能。
而是使用新的基于Shader的管道,您只需拨打glUniformMatrix4fv()
即可提供自己的矩阵。
然后你基本上可以将四元数转换为矩阵。
如果您不想自己完成所有繁重的工作并计算所有矩阵,那么您可以使用GLM(OpenGL数学)。
另外,如果您不知道如何使用新的/现代的OpenGL内容,那么您可以阅读这些精彩的教程。
另一种选择,我强烈建议您不使用,因为它依赖于已弃用的固定功能管道。
仍然要将四元数计算为矩阵,然后使用glMultMatrix*()
将其传递给OpenGL