Ответ 1
Поскольку обычные люди больше привыкли вычислять градусы - OpenGL предназначен для простого использования. Обратите внимание, что все функции, работающие на градусах, являются функциями "высокого уровня".
Для самого OpenGL не имеет значения, получает ли он радианы или степени - они все равно преобразуются в матрицы преобразования, поэтому нет никакого вычислительного выигрыша от использования того или другого.
Итак, зачем усложнять материал для людей, если вы можете позволить им использовать градусы? Любое кодирование, серьезно относящееся к OpenGL, в любом случае предоставит собственные матрицы, вычисленные из кватернионов.
В том же духе мы могли бы спросить, почему glRotatef
и gluPerspective
в любом случае, так как матрицы более элегантны во всех отношениях и позволяют более высокий уровень контроля.
Точка за точкой:
- Элегантность - матрицы более элегантны во всех аспектах.
- Библиотека C - C использует их по вычислительным причинам, функции GL, имеющие углы, не предназначены для использования в сложных вычислительных задачах (используйте матрицы напрямую), и, вероятно, в реализации есть таблица поиска для степеней в любом случае.
- любая другая библиотека - следующая библиотека C по тем же причинам, что и Clib - также, это неверно - многие библиотеки С++ допускают выбор, некоторые используют последний
- Удовлетворение вычислений - не имеет значения - внутреннее представление - это матрицы, вычисления, которые, вероятно, выполняются с использованием таблиц поиска, если они предназначены для эффективного - нет прямой операции по углам, поэтому представление не имеет значения.
Также обратите внимание: все функции, использующие градусы, в текущем стандарте (3.2) устарели. glRotatef
- это функция только, имеющая степень или, фактически, угол. glu - это утилитная библиотека, не предназначенная для интенсивного развертывания, поэтому она ориентирована на читаемость, а gluPerspective(... 60.0f..)
является гораздо более читаемой и "стандартной" с точки зрения поставки FOV, чем gluPerspective( ... M_PI / 3.0f ... )
.
Заключительные примечания: