Почему аргументы к atan2 Y, X, а не X, Y?

Лучшее и простое решение, которое я нашел, это

function round(value, decimals) {
 return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}   
round(1.005, 2); // 1.01
25
задан double-beep 2 February 2019 в 15:02
поделиться

4 ответа

Поскольку я считаю, что это связано с арктангенсом (y / x), y появляется сверху.

Вот хорошая ссылка, немного рассказывающая об этом: Углы и направления

26
ответ дан 28 November 2019 в 21:16
поделиться

Это потому, что в школе используется мнемоника для вычисления градиента
превышают пробег , или, другими словами, dy / dx, или короче y / x.

И этот порядок проник в аргументы функций арктангенса.

Так что это исторический артефакт. Для меня это зависит от того, о чем я думаю
о том, когда я использую atan2 . Если я думаю о дифференциалах, я понимаю
и если я думаю о парах координат, я ошибаюсь.

1
ответ дан 28 November 2019 в 21:16
поделиться

Предположим, прямоугольный треугольник, противоположная сторона которого называется y, а соседняя сторона называется x:

tan (угол) = y / x

arctan (tan (угол)) = arctan ( y / x)

1
ответ дан 28 November 2019 в 21:16
поделиться

Мое предположение всегда заключалось в том, что это из-за определения триггера, то есть

tan(theta) = opposite / adjacent

При работе с каноническим углом от начала координат противоположным всегда является Y, а смежным всегда X, поэтому :

atan2(opposite, adjacent) = theta

То есть, это было сделано таким образом, чтобы не было путаницы в порядке математического определения.

12
ответ дан 28 November 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: