Tho*_*mas 68 opengl angle degrees radians
OpenGL设计师从不害怕数学,线性代数的知识对于除最简单的OpenGL应用之外的所有人都是必不可少的.我认为可以安全地假设OpenGL程序员熟悉弧度角度.
在数学上,弧度在各个方面都比度数更优雅.它们还具有实际优势:
那么,为什么OpenGL设计者决定指定像glRotatef和gluPerspective使用度数这样的函数呢?
(我知道它没有实际意义,反正也不会改变.我只是好奇,我在OpenGL.org上找不到答案.)
Kor*_*icz 33
因为普通人更习惯于计算学位 - OpenGL意味着使用简单.请注意,所有以度为单位运算的函数都是"高级"函数.
对于OpenGL本身而言,它是否接收弧度或度数没有区别 - 无论如何它们都在内部转换为转换矩阵,因此使用其中一个没有计算收益.
那么,如果你可以允许他们使用学位,为什么要为人们复杂化呢?任何在OpenGL中认真编码的人都会提供从四元数计算出的自己的矩阵.
本着同样的精神,我们可以问,为什么有glRotatef,gluPerspective无论如何,因为矩阵在各个方面都更优雅,并允许更高级别的控制.
逐点:
另请注意:所有使用度数的函数都在当前标准(3.2)中已弃用.glRotatef是衡量学位的唯一函数,或者事实上,它是一个角度.glu是一个实用程序库,不适用于重型部署,因此它是针对可读性而量身定制的,并且gluPerspective(... 60.0f..)在提供FOV方面比gluPerspective( ... M_PI / 3.0f ... )其更具可读性和"标准" .
最后的说明:
abe*_*thy 13
我想说的是,由于OpenGL的设计与最终用户心中,度被使用,因为人可以指定重要的角度(90,180,270...)与只能为整数,所以没有必要为一个浮点GL_PI常数.