Калькулятор рассчитал 32°, почему цель в противоположном направлении?
Два противоположных направления могут иметь одинаковый наклон. Оставляя только соотношение, вы выбрасываете действительно нужные символы.
Общие алгоритмы и численные вычисления
Вы знаете, что цель находится внизу слева, но программа рисует стрелку, указывающую вверх и вправо. Расчет может быть правильным: если сначала разделить два отрицательных числа, полученное положительное соотношение не сможет сказать вам, в каком квадранте находится цель.
Угадай сначала
Возможно ли, что отношения y/x двух линий, идущих вверх вправо и вниз влево, одинаковы?
Показать ответ и объяснение
возможный — Обе компоненты одновременно меняют знаки, соотношение остается неизменным, но направление отличается на 180°.
Тогда соедините опыт и науку
Сначала определите квадрант, в котором расположена цель.
Положение синей точки определяется координатами x и y. Однопараметрический atan считывает только соотношение, и два отрицательных знака при делении сократятся.
Диапазон возврата atan(y/x) составляет всего от -90° до 90°.
Передайте два компонента atan2 соответственно.
atan2(y,x) сохраняет положительные и отрицательные знаки и может различать нижний левый и верхний правый; порядок его параметров должен быть подтвержден в соответствии с языковым документом.
В этом проекте используется Math.atan2(y,x)
Направление правильное, и необходимо использовать угловую единицу.
Входные данные тригонометрической функции JavaScript — радианы. Если вы присвоите градус типа 212 непосредственно греху, его ошибочно примут за 212 радиан.
Радианы = градусы × π/180
Не полагайтесь на ложные цифры, чтобы обойти особые обстоятельства.
Направление оси можно определить, но нулевой вектор — нет. Округление и усечение отрицательных чисел также различны, и особенно нельзя смешивать календарные коды.
atan2(0,0) не имеет геометрического направления; пол(-7,83)=-8
Развёрнутые вычисления
θ弧Тратить = atan2(y,x) θТратить = θ弧Тратить × 180/π θ圈内 = ((θТратить mod 360)+360) mod 360
atan2 сначала передает y, затем x; он сохраняет информацию о квадрантах. При x=y=0 геометрическое направление отсутствует, и даже если программа возвращает значение, его нельзя использовать в качестве направления.
попробуй
Сначала посмотрите на пример в левом нижнем углу оригинальной книги, а затем замените оба компонента положительными числами. Коэффициенты наклона одинаковы, но направления должны отличаться на пол-оборота; наконец попробуйте нулевой вектор.
Нет необходимости запоминать символы
- atan(y/x)
- Просто глядя на соотношение, невозможно различить направления, отстоящие друг от друга на 180°.
- atan2(y,x)
- Сохраните два компонента соответственно и оцените квадрант.
- θ / θπ/180
- Значение угла (градусы)/соответствующее значение радиана
- floor / trunc
- Округление в сторону отрицательной бесконечности/усечение в сторону нуля — это не одна и та же операция.
Алгоритм, точность и область применения
Дополнительная глава 1. Ловушка правильного квадранта и языковой единицы. Используя исходную книгу A=-0,5712, B=-0,9139, интерфейс y=A, x=B; atan(A/B) составляет около 32°, а правильное направление — около 212°. Однопараметрический atan не выполняет демонстрацию деления, когда x=0; atan2 по-прежнему может определять направление оси, но (0,0) не имеет геометрического направления, и вы не можете использовать JavaScript atan2(0,0)=0 для получения ответа. На рисунке справа сравниваются результаты после преобразования одного и того же угла в радианы и ошибочной передачи градусов непосредственно в Math.sin; он также показывает диапазон 0–180 °, когда предполагается только cos. Отрицательное округление пола/туловища соответствует главе 7. В старом вводном курсе по углам уже были градусы, минуты, секунды минус знак, угловые часы и круги; здесь это повторяться не будет. Математический портал также реализует тест нормализации большого угла оригинальной книги, полиномы Хорнера и суммирование числовых периодических таблиц, а проверки согласуются с прямым разложением; он не связывает тесты скорости старых моделей с современными гарантиями производительности JavaScript. Реализацию безопасных ветвей и верхних границ итераций также можно найти в общем курсе по поиску корней.
мое понимание, проверка
Какая функция используется в этом проекте для сохранения знаков двух компонент?
atan2(y,x) — atan2 получает y и x соответственно, не отбрасывая сначала информацию о квадранте.
Когда θ выражается в градусах, можно ли напрямую использовать Math.sin(θ)?
Нет, сначала измените радианы — Входные данные греха в JavaScript указаны в радианах.
Оба компонента равны 0, как сообщить правильное направление?
нет определения — Нулевой вектор не имеет направления; число, возвращаемое функцией, не может заменить геометрическое определение.
Сначала сохраните компоненты направления и знаки, а затем преобразуйте единицы измерения; число, заданное программой, не означает, что число имеет правильный геометрический смысл.
Jean Meeus · Astronomical Algorithms, 2nd ed. · Нет. 1 глава
Общие алгоритмы и численные вычисления · Все интерактивные курсы