Почему аргументы для atan2 Y, X, а не X,Y?
в C функция atan2 имеет следующую подпись:
double atan2( double y, double x );
это делают и другие языки. Это единственная функция,которую я знаю,которая принимает свои аргументы в порядке Y, X, а не в порядке X,Y, и она регулярно меня подводит, потому что, когда я думаю о координатах, я думаю (X, Y).
кто-нибудь знает, почему соглашение о порядке аргументов atan2 таково?
4 ответов
потому что я считаю, что это связано с arctan (y/x), поэтому y появляется сверху.
вот хорошая ссылка, говорящая об этом немного:углы и направления
мое предположение всегда было, что это из-за определения триггера, т. е. что
tan(theta) = opposite / adjacent
при работе с каноническим углом от начала координат, противоположным всегда Y и смежным всегда X, так что:
atan2(opposite, adjacent) = theta
Ie, это было сделано таким образом, чтобы не было путаницы с порядком в отношении математического определения.
предположим, что треугольник прямоугольника с противоположной стороной называется y, смежная сторона называется x:
tan (угол) = y / x
равенства arctg(тангенс(угла)) = равенства arctg(у/Х)
это потому, что в школе мнемоника для вычисления градиента
is подняться над run, или другими словами dy/dx, или более кратко y / x.
и этот порядок проник в аргументы функций арктангенса.
Итак, это исторический артефакт. Для меня это зависит от того, что я думаю
о том, когда я использую atan2
. Если я думаю о дифференциалах, я понимаю это правильно
и если я думаю о координатных парах, я понимаю. неправильный.