Существует ли аккуратный способ отобразить выходной сигнал математики. 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
Форум по Javascript
1751254516
Anonymous
Существует ли аккуратный способ отобразить выходной сигнал математики. 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 вообще не нужна. Но для этого случая есть ли какие -либо лучшие способы?
Подробнее здесь: [url]https://stackoverflow.com/questions/79684171/how-to-change-math-atan2s-zero-axis-to-any-given-angle-while-keeping-it-in-the[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия