He estado buscando la definición de radianes y descubrí que los matemáticos los prefieren porque se derivan de pi en lugar de ser completamente arbitrarios como los grados.
Sin embargo, no he encontrado una razón convincente para usarlos en el desarrollo del juego, posiblemente debido a mi completa falta de comprensión matemática relacionada. Sé que la mayoría de sin / cos / tan funciona en idiomas que radianes, pero alguien podría crear funciones de biblioteca en grados (y evitar los errores de redondeo inherentes al usar pi).
No quiero que esto sea una encuesta obvia, solo me gustaría saber de personas que han realizado el desarrollo del juego (y la investigación matemática asociada) donde los radianes ofrecen una experiencia superior en grados, en lugar de "Estamos usando radianes porque siempre los usamos ", solo por ayudarme a mí (y posiblemente a otros) a comprender para qué sirven.
fuente
Respuestas:
Los radianes se usan en matemáticas porque
No es que los matemáticos sean como pi. Los radianes son en realidad una forma más natural. opción de medida de ángulo que grados, por las razones anteriores. Son la medida del ángulo en el que desaparecen factores como pi / 180.
Entonces, en mi opinión, la pregunta no es "por qué usar radianes", sino "por qué no usar radianes". En otras palabras, uno no necesita una razón para usar radianes; son la opción predeterminada de medida de ángulo. Uno necesita una razón para usar grados. Por ejemplo, uno podría elegir mostrar ángulos en grados en la interfaz de usuario de una aplicación, porque son más familiares para muchas personas (especialmente artistas). Sin embargo, personalmente me he acostumbrado a pensar en ángulos en términos de radianes en lugar de grados.
No tengo ningún ejemplo específico de gamedev para darte porque este no es realmente un problema de gamedev, sino matemático, y sería lo mismo en cualquier campo que use matemáticas.
(Por cierto, no hay más "errores de redondeo inherentes cuando se usa pi" que cuando se usan grados ... los ángulos siempre deben ser números reales, no enteros, de lo contrario, ¿cómo va a representar un ángulo de medio grado? :) )
fuente
La respuesta de Nathan es muy concreta. Me gustaría proporcionar una visión más general:
El concepto matemático más complejo que se implementa de forma nativa en la mayoría de las unidades de procesamiento son los números de coma flotante como modelos para el campo de los números reales ℝ. La geometría visual se basa en el espacio vectorial tridimensional real ℝ³. Las coordenadas son números reales. Las cantidades geométricas se basan en la longitud , que es un múltiplo real de una unidad.
Debido a esta base en números reales y longitudes, es práctico modelar también ángulos por números reales resp. longitudes Radianes es la longitud del arco de un círculo unitario con el ángulo dado. Por lo tanto, es el modelo de un ángulo más compatible con todas estas otras unidades basado en números reales resp. longitudes Por ejemplo, la aproximación sen x ~ x para valores pequeños de x es una aproximación de la coordenada y de un punto en el círculo unitario por el arco desde el eje x hasta ese punto.
No hay que olvidar que un ángulo no es una longitud. Es una de las 4 partes de un plano creado por dos líneas rectas que se cruzan. Su cantidad está limitada por la simetría de los planos en ℝ³ y la métrica euclidiana.
Es más natural modelar un ángulo por el intervalo semiabierto [0,1) (o (0,1]) pegado en sus puntos finales, dado el valor de un ángulo como parte de un giro completo. Los grados son solo 1 / 360 de un giro completo. (Por cierto: número teóricamente, esta es una mejor opción que el sistema decimal utilizado para números reales).
fuente
Si bien también uso radianes, por todas las razones especificadas, hay al menos una buena razón por la que se prefieren los grados: precisión y acumulación de errores. Rotar a través de un círculo completo 1 grado a la vez es exacto. Girar a través de un círculo completo 2PI / 360 radianes a la vez no lo es. Realizar una rotación de 90 grados 4 veces en una cuadrícula de píxeles lo lleva de vuelta exactamente a donde comenzó. Realizar una rotación de 2PI / 4 radianes en una cuadrícula de píxeles 4 veces no lo hace.
fuente
Acordemos que es mejor elegir cualquiera y apegarse a él que usar dos definiciones y adivinar cuál de ellas es necesaria para la función actual. Luego, usar la longitud del arco es más natural para la implementación de sin y cos, lo que podría ser una razón para que cmath lo implemente de esa manera. Dado que los juegos a menudo se escriben en C ++ o C y ya hay pecado y cos implementados, tiene sentido apegarse a esa definición.
[Al diablo tu legado opengl]
fuente