Hello Astronomy

Автоматический перевод. Исходный текст — на упрощённом китайском.

Калькулятор рассчитал 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 глава

Общие алгоритмы и численные вычисления · Все интерактивные курсы