Преобразование объектов плоскости XY в произвольную плоскость

У меня есть профиль в плоскости XY. Мне нужно выполнить выдавливание по вектору. Поэтому мне нужно перенести объект профиля перпендикулярно вектору выдавливания. Вектор выдавливания может быть произвольным (Xi + Yj + Zk). Не могли бы вы дать некоторое представление о манипуляциях с векторной базой, чтобы сделать профиль перпендикулярным вектору выдавливания?

Обновлять

......

Профиль в плоскости XY

Глобальный вектор вверх: (0,0,1)

Вектор экструзии: (Xe, Ye, Ze)

Локальный правый = вектор выдавливания x Глобальный вектор вверх = (x1, y1, z1) Локальный левый = вектор выдавливания x Локальный правый = (x2, y2, z2)

Я предполагаю, что мне нужно дважды повернуть плоскость относительно Local right и Local Left.

Таким образом, угол рассчитывается для Local right = Atan (Xe.Y / Xe.Z), и объект поворачивается вокруг Local right на рассчитанный угол. и он работает нормально

У меня вопрос, как рассчитать угол для Local Left?

Если резюмировать, я должен сделать противоположное этому (Отображение координат плоскости, заданной вектором нормали, на плоскость XY)


person RobinAtTech    schedule 06.08.2013    source источник
comment
по вектору выдавливания x Глобальный вектор вверх, вы имеете в виду умножение или кросс-произведение?   -  person Lochemage    schedule 07.08.2013
comment
Кроме того, под local left вы на самом деле имеете в виду local up. Вам нужны только векторы вправо и вверх для плоскости. Используйте эти векторы в отрицательном направлении для эквивалентов левого и нижнего вектора.   -  person Lochemage    schedule 07.08.2013


Ответы (1)


Если у вас есть вектор выдавливания и один опорный вектор, вы можете перемножить их, чтобы получить правый вектор ваших 2D-плоскостей в 3D-пространстве.

Обычно я использую вектор global up в качестве ориентира. Таким образом, умножение вашего extrusion векторного креста на global up даст вектор local right. Еще одно перекрестное умножение между вашим вектором extrusion и новым вектором local right приведет к вектору local up.

Как только вы получите оба вектора local right и local up, это будут ваши плоскости X и Y в трехмерном пространстве.

person Lochemage    schedule 06.08.2013
comment
Пожалуйста, проверьте мой, обновите, Ваше решение работает только частично, возможно, это и моя ошибка - person RobinAtTech; 07.08.2013
comment
Если я резюмирую свой вопрос, как преобразовать координаты из одной плоскости в другую. какие шаги, чтобы сделать это? - person RobinAtTech; 08.08.2013
comment
Это противоположно моим требованиям stackoverflow.com/questions/8780646/ - person RobinAtTech; 08.08.2013