Я борюсь с этим в JavaScript, но эта проблема относится ко многим другим языкам и средам.Как использовать atan2() в сочетании с другими системами Radian angle
Я хочу иметь один объект вращающийся к позиции другого объекта, и я использую:
atan2(obj1.dy, obj1.dx) - obj2.getRotation()
, чтобы проверить, если второй объект должен вращаться по часовой стрелке или против часовой стрелки, в данный момент времени.
В KineticJS, среде программирования JS/HTML5/Canvas, которую я использую, угол указан в радианах от 0 до 2 pi, начиная с положительной оси Y и идя по часовой стрелке. Такое поведение наблюдается и во многих других средах программирования.
Однако при расчете угла движения от второго объекта с Math.atan2 (у, х) функции, угол задаются от -pi пи, начиная с положительной осью X, происходит против часовой стрелки.
Для уточнения:
Вопрос:
Как я могу вычислить угол в нормальных радианах от результата функции atan2()?
_ «В Javascript/HTML5/Canvas (как и во многих других средах программирования) угол задается в радианах от 0 до 2 пи, начиная с положительной оси Y и идя по часовой стрелке.» _ Вы уверены, что это является ли соглашение, указанное языком, а не вашей собственной базой кода? В прошлый раз, когда я использовал холст, я предположил, что радианы начали с положительной оси X и двигались против часовой стрелки, и все работало так, как я ожидал. – Kevin
Кевин, возможно, вы правы. Действительно, я использую KineticJS для своего текущего приложения, которое ведет себя так, как я заявлял. Я не уверен, как это соглашение указано в исходном контексте холста. Спасибо, что указали это, я отредактирую его. – Qqwy