2013-12-22 16 views
-2

Итак, если мне задан произвольный единичный вектор N и другой вектор V, определенный в сферических координатах theta (полярный угол между N и V) и phi (азимутальный угол) и r = 1. Как преобразовать вектор V в декартовы координаты?Преобразование из сферических координат в декартово вокруг произвольного вектора N

Теперь я знаю, что в общем случае переход от сферического до декартова выглядят следующим образом:

x = r * sin theta * cos phi 
y = r * sin theta * sin phi 
z = r * cos theta 

Однако, поскольку углы тета и фи, определяются соответствующей вектор N, а не оси, указанные конверсия не сработает, да? Итак, как я могу изменить преобразование?

+1

Этот вопрос не соответствует теме, потому что речь идет о математике. –

+0

Существует доступная вкладка математики, поэтому, похоже, на этом сайте есть место для математических вопросов. – user1855952

+3

Да, но пересечение с некоторым типом программирования должно быть непустым. –

ответ

2

Я чувствую, что это просто невозможно, учитывая информацию, которую вы должны иметь.

У вас не может быть объекта V со сферическими полярными компонентами, определенными относительно другого vector. В стандартной сферической полярной системе координат координаты точки P приведены в (r,theta,phi), где theta - полярный угол, азимутальный угол phi и r - евклидово расстояние от начала координат. Полярный угол - это угол между осью z и линией, соединяющей начало координат с точкой P. Азимутальный угол определяется как угол между осью х и линией, которая соединяет начало с ортогональным проектором P на плоскость xy.

Иногда определения этих двух углов меняются на противоположные. Выше наглядно иллюстрируется на странице вики http://en.wikipedia.org/wiki/Spherical_polars

Дело в том, что углы определяются относительно два взаимно ортогональных осей - г и х в этом случае. Таким образом, у вас не может быть и ваших полярных и азимутальных углов, определенных относительно одного вектора. N - Вы можете иметь ОДИН из них измеренный относительно N, но не оба.

В соответствии с этим ваша проблема не может быть решена без предоставления другого вектора, ортогонального вашему N, который обеспечивает ось, на которую измеряется другой угол (полярный или азимутальный).

Ваше описание N указывает, что это ось z некоторой вращающейся системы координат, которую V принимает свой полярный угол относительно. Вам нужен другой вектор, который дает ось X той же вращающейся системы координат, что V измеряет его азимутальный угол относительно. С помощью этой информации вы можете получить матрицу вращения, которая отображает оси повернутой оси координат на декартовые координатные оси - оттуда вы получите достаточную информацию для получения декартовых координат V, которые вам нужны.

0

Посмотрите на это: http://www.ewerksinc.com/refdocs/coordinate%20and%20unit%20vector.pdf

На странице 7 вы найдете формулы преобразования между сферическими и декартовыми векторами.

+1

Не могли бы вы также извлечь соответствующий контент из ссылки, на случай, если он будет удален или изменен? –

Смежные вопросы