Parce que les gens normaux sont plus habitués à calculer des degrés -- OpenGL est destiné à être utilisé simplement. Notez que toutes les fonctions qui opèrent sur les degrés sont des fonctions de "haut niveau".
Pour OpenGL lui-même, il n'y a pas de différence entre les radians et les degrés -- ils sont convertis en interne en matrices de transformation de toute façon, donc il n'y a pas de gain de calcul à utiliser l'un ou l'autre.
Alors pourquoi compliquer les choses pour les gens si vous pouvez les autoriser à utiliser des diplômes ? Toute personne codant sérieusement en OpenGL fournira de toute façon ses propres matrices calculées à partir de quaternions.
Dans le même esprit, nous pourrions nous demander, pourquoi avoir glRotatef
y gluPerspective
de toute façon, puisque les matrices sont plus élégantes à tous égards et permettent un meilleur niveau de contrôle.
Point par point :
- Élégance - les matrices sont plus élégantes à tous égards.
- Bibliothèque C - La bibliothèque C les utilise pour des raisons de calcul, les fonctions GL prenant des angles ne sont pas destinées à être utilisées pour des tâches de calcul lourdes (utilisez directement les matrices), et l'implémentation a probablement une table de recherche pour les degrés de toute façon.
- toute autre bibliothèque - suivant la bibliothèque C pour les mêmes raisons que Clib -- aussi, c'est faux -- beaucoup de bibliothèques C++ permettent un choix, certaines utilisent la dernière
- Convivialité des calculs - peu importe -- la représentation interne est constituée de matrices, les calculs sont probablement effectués à l'aide de tables de consultation si l'on veut être efficace -- il n'y a pas d'opération directe sur les angles, donc la représentation n'a pas d'importance.
Notez également : toutes les fonctions utilisant les degrés sont dans la norme actuelle (3.2) dépréciées. glRotatef
es el uniquement fonction prenant des degrés, ou en fait, un angle tout court. glu est une bibliothèque utilitaire qui n'est pas destinée à un déploiement intensif, et qui est donc conçue pour être lisible, et gluPerspective(... 60.0f..)
est beaucoup plus lisible et "standard" en termes de fourniture de FOV que gluPerspective( ... M_PI / 3.0f ... )
serait.
Notes finales :