对于glm :: angleAxis,glm :: dvec的'1.0f'是什么意思?

问题描述 投票:0回答:2

在计算下面的四元数时,

你能否解释一下1.0f的含义是什么意思?

我以为它可能是90度的x轴。

 glm::angleAxis(3.141592... / 2, glm::dvec3(1.0f, 0.0f, 0.0f)))
c++ opengl glm-math
2个回答
1
投票

glm::angleAxis方法构造一个围绕轴旋转的四元数。参数是:

  • 以弧度表示的角度
  • 应围绕其旋转的轴。

您的示例确实围绕x轴([1,0,0])构建了90°旋转(= PI / 2)。如果您想要围绕z轴旋转90°,则必须将轴更改为[0,0,1],依此类推。


0
投票

如果您看到四元数的工作原理,则可以定义沿一个轴或相对于一个轴的方向。与正常的欧拉角旋转一样,您使用沿三个轴的三个角来定义旋转(请参见非方向),这可能导致旋转模式,使得两个轴可能最终彼此平行并且您失去一个旋转自由度通常是万向节锁定问题。因此四元数定义方向,因此它们只使用一个参考向量。您正在使用的功能是沿x轴定义该向量。我希望这很清楚。

© www.soinside.com 2019 - 2024. All rights reserved.