弧度或度

Radian or Degrees?

本文关键字:      更新时间:2023-10-16

当我从欧拉角创建旋转矩阵时,我是否应该将度(欧拉角)转换为弧度,然后计算 OpenGL 的旋转矩阵?但是我应该如何处理四元数?我应该执行以下操作吗:

void setQuaternionsFromEuler(float bank, float heading, float attitude)
{
   float DegreeToRadian = 3.14f/180.0f;
   double c1 = cos(heading/2*DegreeToRadian);
   double c2 = cos(attitude/2*DegreeToRadian);
   //...
   double s3 = sin(bank/2*DegreeToRadian);
   this.w = c1*c2*c3 - s1*s2*s3;
   //...
}

void setMatrixFromEuler(float x, float y, float z)
{
   float DegreeToRadian = 3.14f/180.0f;
   x *= DegreeToRadian;
   y *= DegreeToRadian;
   //...
}

要不?

这取决于您如何定义输入。

C++的三角函数只采用弧度,因此您最终需要转换为弧度,但这可以在数据进入程序之前完成(这样资源中的角度值都以弧度为单位)

旋转矩阵不再有角度,因此它与 OpenGL 没有真正的关系,但是您在 C 或 C++ 中的标准库中使用的三角函数是在弧度上定义的,因此,如果您面向用户的 API 适用于度,那么是的,您应该转换为 cos/sin。

相关文章:
  • 没有找到相关文章