viceversa revoluciones radianes grados ejercicios convertir conversion como opengl angle degrees radians

opengl - revoluciones - ejercicios de radianes a grados y viceversa



¿Por qué OpenGL usa grados en lugar de radianes? (5)

Los diseñadores de OpenGL nunca temieron a las matemáticas, y el conocimiento del álgebra lineal es esencial para todas las aplicaciones de OpenGL menos las más simples. Creo que se puede suponer con seguridad que los programadores de OpenGL están familiarizados con los ángulos en radianes.

Matemáticamente, los radianes son más elegantes que los grados en todos los aspectos. También tienen ventajas prácticas:

  • La biblioteca estándar C usa radianes.
  • Prácticamente cualquier otra biblioteca utiliza radianes también.
  • Los radianes son más convenientes en algunos cálculos, por ejemplo, la longitud de un arco circular.

¿Por qué, entonces, los diseñadores de OpenGL decidieron especificar funciones como glRotatef y gluPerspective para usar grados?

(Sé que no tiene importancia práctica, y de todos modos no va a cambiar. Tengo curiosidad y no pude encontrar la respuesta en OpenGL.org).


Bueno, lo que sucede en la mayoría de los casos es que utilizas una biblioteca de matemáticas para convertir de radianes a grados y de vuelta a radianes. Estoy de acuerdo con la mayoría de lo que dijeron los impresionantes carteles anteriores.

Es más humano legible.


Creo que es porque deberías poder obtener una matriz de rotación exacta para ciertos ángulos como 90 o 180 grados. Al igual que otras personas aquí especificadas, si usa pi / 2 en lugar de 90 grados, los errores de redondeo pueden llevar a una matriz de transformación que casi realiza una rotación de 90 grados.


Debido a que las personas normales están más acostumbradas a calcular los grados, OpenGL está destinado a ser simple. Tenga en cuenta que todas las funciones que operan en grados son funciones de "alto nivel".

Para OpenGL en sí, no hay diferencia si recibe radianes o grados: se convierten internamente a matrices de transformación de todos modos, por lo que no hay ganancia computacional de usar uno u otro.

Entonces, ¿por qué complicar las cosas a las personas si puedes permitirles usar grados? Cualquiera que codifique seriamente en OpenGL proporcionará sus propias matrices computadas de cuaterniones de todos modos.

En el mismo espíritu, podríamos preguntar, ¿por qué tener glRotatef y gluPerspective todos modos, ya que las matrices son más elegantes en todos los aspectos, y permiten un mayor grado de control.

Punto por punto:

  • Elegancia: las matrices son más elegantes en todos los aspectos
  • Biblioteca C: la biblioteca C los usa por razones de computación, las funciones GL que toman ángulos no están destinadas a ser utilizadas para tareas pesadas computacionales (usan matrices directamente), y probablemente la implementación tenga una tabla de búsqueda para grados de todos modos.
  • cualquier otra biblioteca, que sigue a la biblioteca C por los mismos motivos que Clib, también es falsa, muchas bibliotecas C ++ permiten una elección, algunas utilizan la última
  • Confort de computación - no importa - la representación interna es matrices, los cálculos probablemente se hacen usando tablas de búsqueda si se quiere que sean eficientes - no hay operación directa en ángulos, entonces la representación no importa

También tenga en cuenta : todas las funciones que usan grados están en el estándar actual (3.2) en desuso. glRotatef es la única función que toma grados o, de hecho, un ángulo. glu es una biblioteca de utilidades no pensada para una implementación de servicio pesado, por lo tanto, está diseñada para ser gluPerspective(... 60.0f..) , y gluPerspective(... 60.0f..) es mucho más legible y "estándar" en términos de suministro de FOV que gluPerspective( ... M_PI / 3.0f ... ) sería.

Notas finales:


Diría que, dado que OpenGL se diseñó pensando en el usuario final, se utilizaron grados porque se pueden especificar ángulos importantes ( 90 , 180 , 270 ...) solo con números enteros, por lo que no es necesario un punto flotante. GL_PI constante.


El código es más fácil de leer, facilita la curva de aprendizaje para los novatos y permite el pirateo rápido.

Como ya se dijo - los grados TIENEN ventaja - los humanos están mejor acostumbrados a los grados, compare: 0.78539816339744830961566084581988 ... a 45 grados, por ejemplo: /.

Para usos avanzados de OpenGL, proporcione sus propias matrices de todos modos.