Как перевести полярные координаты в декартовые
Перейти к содержимому

Как перевести полярные координаты в декартовые

  • автор:

Конев В.В. Комплексные числа

Основные понятия
Полярная система координат

Основные понятия

Приложения

Для описания положения точки P плоскости x0y можно использовать полярные координаты r и φ, где r – расстояние от точки P до начала координат, называемого полюсом; φ – угол, образованный лучом 0P с положительным направлением оси 0x (полярной осью).
Полярные координаты точки связаны с ее декартовыми прямоугольными координатами простыми соотношениями:






или

Координатными линиями в полярной системе координат являются концентрические окружности и лучи .

Рис. 5. Координатные линии в полярной системе координат.

Как перевести полярные координаты в декартовые

  • По теме
    • Биология
      • Человек
        • Анатомия
        • Работа организма
          • Нервная система
          • Дыхание и кровообращение
          • Пищеварительная система
          • Иммунная система
          • Мышечная система и движение
          • Размножение
          • Животные
          • Растения
          • Клетка и ДНК
          • Наследственность и генетика
          • Внешняя геодинамика
          • Внутренняя геодинамика
          • Экосистемы
          • Климат и атмосфера
          • Вода
          • Почва
          • Угроза для окружающей среды
          • Механика
            • Сила
              • Simple machine
              • Float or sink?
              • Masses and springs
              • Addition of forces
              • Вибрации и волны
                • Вибрация
                • волны
                • Интерференция и дифракция
                • Свет
                • Тени
                • Зрение и цвета
                • Магнетизм
                  • Магнит и компас
                  • Магнитное поле
                  • Электрический заряд
                  • Электрическое поле
                  • Электрический потенциал
                  • Электрическая цепь
                  • Выработка и распределение
                  • Квантовая физика и теория относительности
                  • Физика частиц
                  • Солнечная система
                  • Земля, Солнце и Луна
                  • Космические технология
                  • Структура материи
                  • Свойства материи
                  • Хими́ческая реа́кция
                  • Опыты
                  • Электроника
                  • Машины и процессы
                  • Измерительные инструменты
                  • Анализ
                    • Функции
                    • Интегралы и производные
                    • Последовательность
                    • Система координат
                    • Геометрические формы
                    • Преобразования пространства
                    • Изображения в разрезе
                    • Қазақстан
                    • Canada
                    • UK
                    • Рассылки
                    • Licenses
                    • Контакты

                    A maintenance operation is scheduled for November 4, 2023. The EduMedia site and associated services will not be available during this time. Thank you for understanding.

                    • Средства математики
                    • Геометрия
                    • Система координат

                    Преобразовать полярные координаты в декартовы

                    Есть довольно простой алгоритм, известный, наверное, всем со школы.

                    def polar2cart(r,phi): x = r*math.cos(phi) y = r*math.sin(phi) return x,y

                    В питоне, кстати, в модуле cmath есть даже функции rect/polar, которые в принципе делают тоже самое. Но они это делают для этого числа. А мне надо в numpy для двух одномерных векторов. и на выходе получить двумерный вектор (всех возможных вариантов, декартово произведение). Можно, конечно, сделать тупо циклом for или генератором списков.

                    rs = numpy.arange(0,100) phis = numpy.arange(0,math.pi,math.pi/360) xs = [r*math.cos(phi) for r in rs for phi in phis] ys = [r*math.sin(phi) for r in rs for phi in phis]

                    Но это наверное неэффективно. Можно как-то тоже самое сделать векторными операциями numpy?

                    xs = rs*numpy.cos(phis) ys = rs*numpy.sin(phis)

                    но ругается, что размерность неправильная. На выходе мне надо получить два двухмерных массива numpy. чтобы они были xs.shape == (rs.shape, phis.shape) (ну то есть для примера выше 100×360)

                    Вариант с генератором списков работает, но наверное он не Ъ, и это скажется, если я увеличу размер выборки. 🙂

                    Форумы GIS-Lab.info

                    Преобразовать полярные координаты в декартовы

                    Системы координат, проекции, преобразования, привязка
                    14 сообщений • Страница 1 из 1
                    Slon747 Новоприбывший
                    Сообщения: 10 Зарегистрирован: 14 ноя 2015, 20:58
                    Репутация: 0

                    Преобразовать полярные координаты в декартовы

                    Сообщение Slon747 » 03 дек 2015, 17:54

                    Помогите пожалуйста преобразовать полярные координаты в декартовы.
                    Возвращает не верный результат.
                    Что не так?

                    //координаты в полярной системе (в радианах) longitude = 0.820304; longitude = 0.64577; r = 6371; //радиус Земли //получаем декартовы координаты x = r * cos(latitude) * cos(longitude); y = r * cos(latitude) * sin(longitude); z = r * sin(latitude); 

                    Сообщения: 5240 Зарегистрирован: 09 апр 2010, 19:30 Статьи: 1
                    Репутация: 1008 Ваше звание: просто мимо прохожу Откуда: Ё-бург

                    Re: Преобразовать полярные координаты в декартовы

                    Сообщение trir » 03 дек 2015, 19:35

                    Сообщения: 731 Зарегистрирован: 12 янв 2011, 22:40 Проекты: 1
                    Репутация: 304 Ваше звание:

                    Re: Преобразовать полярные координаты в декартовы

                    Сообщение Ariki » 03 дек 2015, 22:27

                    Два раза присваиваете разные значения longitude, вот что.

                    Только если пишете «возвращает неверный результат», пожалуйста, указывайте, что именно возвращает и что, по вашему мнению, является верным результатом.

                    Slon747 Новоприбывший
                    Сообщения: 10 Зарегистрирован: 14 ноя 2015, 20:58
                    Репутация: 0

                    Re: Преобразовать полярные координаты в декартовы

                    Сообщение Slon747 » 04 дек 2015, 10:28

                    Ariki писал(а): Два раза присваиваете разные значения longitude, вот что.
                    Да, я переводил с Java в математический вид и просто ошибся.
                    Вот мой исходный код:

                    //координаты в полярной системе double lat = 47; double lon = 37; //переводим в радианы double lat_radian = Math.toRadians(lat); double lon_radian = Math.toRadians(lon); final double r = 6371.; // Радиус Земли //получаем декартовы координаты double x = r * cos(lat_radian) * cos(lon_radian); double y = r * cos(lat_radian) * sin(lon_radian); double z = r * sin(lat_radian); 

                    Перевод в радианы верный. Проверял.

                    Ariki писал(а): Только если пишете «возвращает неверный результат», пожалуйста, указывайте, что именно возвращает и что, по вашему мнению, является верным результатом.

                    Вот тут получаю заведомо верный результат преобразования: http://keisan.casio.com/exec/system/1223527679
                    LatLng(47,37) возвращает в декартовых:
                    x=37.5359
                    y=28.2853

                    Тот-же результат выдает и на другом web-ресурсе.
                    У меня же по формуле получается:
                    x=3437.3313957
                    y=2642.7014421

                    P.S. Читал документацию, что дал trip. Различий в формулах не нашел.

                    Добавить комментарий

                    Ваш адрес email не будет опубликован. Обязательные поля помечены *