因为正常的人比较多用于计算度数 - OpenGL旨在用于简单。请注意,所有对度进行操作的函数都是“高级”函数。
对于OpenGL本身,它是否接收弧度或度数没有区别 - 它们在内部转换为转换矩阵,所以没有使用其中一个或另一个的计算收益。
那么,为什么如果你可以允许他们使用度,让人们变得复杂呢?任何在OpenGL中认真编码的人都会提供他们自己的从四元数计算出来的矩阵。
本着同样的精神,我们可以问,为什么要有glRotatef
和gluPerspective
,因为矩阵在各方面都更加优雅,并且允许更高的控制等级。
逐点:
- 雍容华贵 - 矩阵是在各方面
- C库更优雅 - C库使用他们,因为计算的原因,拍摄角度GL功能都注定不会被用于计算繁重的任务(直接使用矩阵),并且可能实现有一个度数查找表。
- 任何其他库 - 出于与Clib相同的原因在C库之后 - 也是不真实的 - 许多C++库允许进行选择,有些则使用后者。计算的便利性 - 无所谓 - 内部表示法是矩阵,如果意味着要高效计算probablye使用查找表完成的 - 有对角没有直接的操作,所以表示没关系
还要注意:所有的使用度的功能在目前的标准(3.2)已弃用。 glRotatef
是只有功能取得程度,或者事实上,一个角度。glu是一种不适合重型部署的实用程序库,因此它专为可读性量身定制,并且gluPerspective(... 60.0f..)
在提供FOV方面的可读性和“标准”要比gluPerspective(... M_PI/3.0f ...)
多得多。
最后说明:
虽然我从来没有使用过非常多的OpenGL - 我也想知道为什么度数而不是弧度!正如你所说,显而易见,弧度在每个方面都更加优雅。 – sabiland 2010-01-27 12:54:58
对于投票结束的人来说:这是一个真正的问题,并且在那里必须有一个确定的和决定性的答案。也许在SGI的一些会议上有几分钟的时间,我不知道...... – Thomas 2010-01-27 13:03:58