Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Переход в систему


Автор: Rickert 14.1.2007, 15:34
Есть вектор. Считаем, что он - является направляющим осью Х. Т.е. Если он имеет значение A(1; 1; 0), то ось новой системы координат Х' находится под некоторым углом к мировой оси Х (изначальной).
^y
|
|   /*A(1; 1; 0) - x'
|  /
| /
|/_______>x
Вопрос: как построить круг (x = cos(a), y = sin(a)) в новой системе координат Х' ?
Пространство трёхмерно, следовательно значение вектора (1; 1; 0) - это просто пример. Значение по z не обязательно = 0.

Автор: Aloha 14.1.2007, 16:09
Rickert

для простейшего случая (когда оси z и z' совпадают) имеем:

user posted image

Автор: Rickert 14.1.2007, 16:55
Aloha, у меня трёхмерный случай. ты попробуй, возьми вектор (1; 1; 1). Ты там так просто не построишь окружность в новой системе.

Добавлено @ 16:59 
И ещё, забыл сказать, что окружность надо строить в плоксоти X'Z', а не X'Y'

Автор: Aloha 14.1.2007, 17:27
Rickert
Насколько я понял условие – ось x’ новой системы координат совпадает с вектором A.
Проблема в том, что в произвольном случае вектор A задает новую систему с точностью до поворота относительно оси x’ (т.е. относительно вектора A), и следовательно – неоднозначно.

Короче говоря, задачу надо-бы доопределить.

Это (я надеюсь smile ) пояснит смысл сказанного:

user posted image

У систем координат x'y'z' и x'y''z'' ось x' общая, совпадающая с вектором A.

Автор: Rickert 14.1.2007, 18:06
Aloha, не понял что ты хотел сказать

Автор: Rickert 14.1.2007, 21:09
Вот что я имею ввиду:
user posted image
Есть вектор A, исходя из него надо посроить в системе координат штрихованной круг в плоскости X'Z'

Автор: Aloha 15.1.2007, 20:43
Rickert

Глядя на твои пояснения, подумалось что, возможно, ты имеешь в виду, что вектор A и оси Oy и Oy' лежат в одной плоскости. Вот решение в этих предположениях:

user posted image
user posted image

Добавлено
user posted image

Автор: Rickert 16.2.2007, 02:49
Нет, всё по другому: берём три угла поворота нашего вектора ко всем мировым осям - строим матрицу поворота, получаем три новых базиса smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)