Принудительное правило правой руки

Вот что я пытаюсь сделать:
Ввод: три трехмерных вектора {v1,v2,v3}, которые являются ортонормированными с произвольным знаком.
Выход: два набора из трех трехмерных векторов {v1s,v2s,v3s} которые являются ортонормированными и имеют конкретный знак и которые согласуются с правилом правой руки.
Допущения: v1s будет иметь произвольный знак
.

Мой вопрос сосредоточен на том, как найти знак v2s, я хотел бы заставить это: v1s и v2s будут иметь угол со знаком (!) 90 градусов, одинаковый угол со знаком между v2s, v3s.

Что касается v3s, я планирую рассчитывать следующим образом: v3s = cross(v1s,v2s).

Если вопрос не определен правильно, вы можете определить любой произвольный вектор как константу.


person Tamir Einy    schedule 01.01.2017    source источник
comment
Ответ, похоже, вас не удовлетворил, хотя и совершенно правильный. Можете ли вы добавить фиктивный пример в свой вопрос с 3 входными векторами и ожидаемым результатом? PS: Лутцл в своем ответе дал вам 2 разных способа создания вашей основы!   -  person BillBokeey    schedule 04.01.2017


Ответы (1)


Да, ваш вопрос не совсем корректен. В размерах выше 2D угол со знаком отсутствует. Вы получите угол со знаком между двумя векторами только в том случае, если зафиксируете ориентацию на плоскости, натянутой на эти векторы, и, как правило, предпочтительной ориентации нет.

В 3D фиксация ориентации сводится к фиксации одного из двух нормализованных векторов нормалей. Таким образом, вы можете либо определить v3 из неизмененных v1 и v2 как v3s = cross(v1s,v2s), либо исправить неизмененный v3, чтобы определить ориентацию на плоскости v1,v2 и вычислить v2s = cross(v3s,v1s).

person Lutz Lehmann    schedule 01.01.2017
comment
LutzL можно ли определить порядок v1,v2,v3 по часовой стрелке? когда v1 будет считаться всегда первым. - person Tamir Einy; 01.01.2017
comment
Я понятия не имею, что это может означать. по часовой стрелке, похоже, подразумевается некоторая 2D-проекция, и вы всегда можете посмотреть на нее с двух сторон. - person Lutz Lehmann; 01.01.2017