Я искал определение радианов и обнаружил, что математики предпочитают их, потому что они получены из числа пи вместо того, чтобы быть совершенно произвольными, как градусы.
Однако я не нашел убедительной причины использовать их при разработке игр, возможно, из-за моего полного отсутствия математического понимания. Я знаю, что большинство функций sin / cos / tan в языках являются радианами, но кто-то также может создавать библиотечные функции в градусах (и избегать ошибок округления при использовании pi).
Я не хочу, чтобы это был самоуверенный опрос, я просто хотел бы услышать от людей, которые занимались разработкой игр (и связанными с ними математическими исследованиями), где радианы предлагают превосходный опыт над градусами, в отличие от «Мы используем радианы потому что мы всегда использовали их ", просто чтобы помочь мне (и, возможно, другим) понять, для чего они хороши.
источник
Ответы:
Радианы используются в математике, потому что
Дело не в том, что математики просто как пи. Радианы на самом деле являются более естественным выбором угловых измерений, чем градусов, по вышеуказанным причинам. Это угловая мера, в которой исчезают такие факторы, как пи / 180.
Итак, ИМО, вопрос не в том, «зачем использовать радианы», а «почему бы не использовать радианы». Другими словами, нет необходимости использовать радианы; они являются выбором угла по умолчанию . Нужна причина использовать градусы. Например, можно выбрать отображение углов в градусах в пользовательском интерфейсе приложения, поскольку они более знакомы многим людям (особенно художникам). Однако лично я привык думать об углах с точки зрения радианов, а не градусов.
У меня нет конкретных примеров gamedev, чтобы дать вам, потому что это на самом деле не проблема gamedev, а математическая, и она будет такой же в любой области, где используется математика.
(Между прочим, при использовании числа pi больше нет «ошибок округления», чем при использовании градусов ... углы всегда должны быть действительными числами, а не целыми числами, иначе как вы будете представлять угол в полградуса? :) )
источник
Ответ Натана очень конкретный. Я хотел бы предоставить более общий вид:
Наиболее сложная математическая концепция, которая изначально реализована в большинстве модулей обработки, - это числа с плавающей запятой в качестве моделей для поля действительных чисел ℝ. Визуальная геометрия основана на трехмерном реальном векторном пространстве ℝ³. Координаты являются действительными числами. Геометрические величины основаны на длине , которая является реальным кратным единице.
Из-за этой базы в действительных числах и длинах практично также моделировать углы действительными числами соответственно. длины. Радианы - это длина дуги единичного круга с заданным углом. Таким образом, это модель угла, наиболее совместимая со всеми этими другими единицами, основанная на действительных числах, соответственно. длины. Например, приближение sin x ~ x для малых значений x - это приближение y-координаты точки на единичной окружности дугой от оси x к этой точке.
Не следует забывать, что угол - это не длина. Это одна из 4 частей плоскости, созданной двумя пересекающимися прямыми. Его количество ограничено симметрией плоскостей в ℝ³ и евклидовой метрикой.
Более естественно моделировать угол с помощью полуоткрытого интервала [0,1) (или (0,1]), склеенного вместе в его конечных точках, учитывая значение угла как часть полного поворота. 360 оборота. (Кстати, теоретически, это лучший выбор, чем десятичная система, используемая для действительных чисел.)
источник
Хотя я также использую радианы, по всем указанным причинам есть хотя бы одна веская причина, по которой предпочтительны градусы: точность и накопление ошибок. Поворот на полный круг 1 градус за раз является точным. Вращаться по полному кругу 2PI / 360 радиан за раз нет. Выполнение поворота на 90 градусов 4 раза на пиксельной сетке вернет вас туда, откуда вы начали. Выполнение вращения 2PI / 4 радиан на пиксельной сетке 4 раза не выполняется.
источник
Давайте согласимся, что лучше выбрать любое и придерживаться его, чем использовать два определения и немного угадать, какое из них необходимо для текущей функции. Тогда использование длины дуги более естественно для реализации sin и cos, что может быть причиной того, что cmath реализует это таким образом. Так как игры часто пишутся на C ++ или C, а уже реализованы функции sin и cos, имеет смысл придерживаться этого определения.
[Винт вы наследие OpenGL]
источник