Существует ли аккуратный способ отобразить выходной сигнал математики. Atan2 в другой диапазон, сохраняя результат, все еще в [180 °, 180 °], как если бы расчет не начинается с положительной оси x (справа = 0 °), но с любого данного угла? Метод Math.Atan2 довольно причудливый, потому что он не соответствует картографическому соглашению для расчета углов азимута, которые должны начинаться с положительной оси Y (или вверх) вместо этого. Тем не менее, настройка математики, стоящей за Arctan , явно не является хорошим выбором; Я считаю, что отображение угла выходного удара должно быть лучше. < /P>
Мой вывод состоит в том, что вам нужно классифицировать углы как минимум на 2 категории, чтобы обеспечить результат в диапазоне [-180 °, 180 °]. Я знаю, что rotate () может обрабатывать результаты из этого диапазона, и закругление не требуется. Тем не менее, я просил, чтобы вывод оставался в этом диапазоне. (Right=0°)
After (30°SE=0°)
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
Как изменить математику. Атан2 нулевой ось под каким-либо углами, сохраняя ее в диапазоне [-π, π]? ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как визуализировать уценку, которая имеет встроенную и блочную математику изначально на iOS?
Anonymous » » в форуме IOS - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу сделать свою математику более стабильной для больших радиусов круга?
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу сделать свою математику более стабильной для больших радиусов круга?
Anonymous » » в форуме C# - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу сделать свою математику более стабильной для больших радиусов круга?
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-