Как изменить математику. Атан2 нулевой ось под каким-либо углами, сохраняя ее в диапазоне [-π, π]?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как изменить математику. Атан2 нулевой ось под каким-либо углами, сохраняя ее в диапазоне [-π, π]?

Сообщение Anonymous »

Существует ли аккуратный способ отобразить выходной сигнал математики. Atan2 в другой диапазон, сохраняя результат, все еще в [180 °, 180 °], как если бы расчет не начинается с положительной оси x (справа = 0 °), но с любого данного угла? Метод Math.Atan2 довольно причудливый, потому что он не соответствует картографическому соглашению для расчета углов азимута, которые должны начинаться с положительной оси Y (или вверх) вместо этого. Тем не менее, настройка математики, стоящей за Arctan , явно не является хорошим выбором; Я считаю, что отображение угла выходного удара должно быть лучше. < /P>
Мой вывод состоит в том, что вам нужно классифицировать углы как минимум на 2 категории, чтобы обеспечить результат в диапазоне [-180 °, 180 °]. Я знаю, что rotate () может обрабатывать результаты из этого диапазона, и закругление не требуется. Тем не менее, я просил, чтобы вывод оставался в этом диапазоне. (Right=0°)
After (30°SE=0°)





-30°


30 ° < /td>
0 ° < /td>
< /tr>

60 ° < /td>
30 ° < /td>
< /tr>

120 °> 120 °>

/> 90 ° < /td>
< /tr>

180 ° < /td>
150 ° < /td>
< /tr>

-180 ° < /td>

-180 ° < /td>

-180 ° < /td> /> < /tr>

-120 ° < /td>
-150 ° < /td>
< /tr>

-60 ° < /td>
-90 ° < /td>

-90 ° < /td>

-90 °>

-90 °>

-90 °>

-90 ° °. /> -30 °
-60 °



Я отметил, что существует разрыв в -180 °/180 ° в этом методе, который возникал здесь. Небольшой двухсторонний условное условие, вероятно, достаточно для решения этой проблемы, но есть ли какой-либо простой способ достичь этого результата (любого данного угла поворота θ ) без использования каких-либо условий?
Визуальное описание. Любые координаты, которые попадают в область фиолетового перекрытия, нуждаются в другом способе расчета. На нем направляющая карта была вращающейся, но изменение ориентации изображения карты повлияет на слишком много других вещей, поэтому я хотел найти простой способ обработки вывода, независимо от того, в каком направлении карта была размещена на панели Земли. Я удалил немного нерелевантного кода здесь. < /P>
earth.addEventListener('click', function (e) {

// The coordinates of the point of click within the circle is retrieved as (clickX, clickY).

// If the final angle is positive, offset it with 180°. Otherwise offset it with -180°. Notice that it is a specific case.

let longitude = Math.atan2(clickY, clickX) * 180 / Math.PI;

if (longitude
Если смещение составляло 30 °, и мы пытаемся достичь эффекта таблицы выше, код должен быть записан вместо этого, например: < /p>
if (longitude -180) {
longitude = (longitude - 30);
} else {
longitude = (longitude + 330);
}
< /code>
Очевидно, что если нам не нужен результат, чтобы находиться внутри [-180 °, 180 °], if-else вообще не нужна. Но для этого случая есть ли какие -либо лучшие способы?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -it-in-the
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»