2016-08-05 4 views
0

При использовании трехмерного матричного преобразования можно ли использовать только матрицу для каждого объекта, чтобы поместить, повернуть и масштабировать объект? Должен ли я также поддерживать отдельный набор данных о местоположении, чтобы, например, выполнять такие операции, как «вращать вокруг произвольной точки»?Использование матрицы для размещения объектов в 3D-пространстве

Прошу, потому что я не могу понять, как (в частности ...) вращаться вокруг произвольной точки, хотя это относится к общему управлению пространственной информацией объекта.

ответ

1

Вам понадобится матрица 4x4. Матрица 3x3 в трехмерном пространстве описывает только линейные преобразования, которые не включают позиционирование (перевод).

Дополнительную информацию об исполнении: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/. Еще много на Google.

E.g. для вращения вокруг произвольной точки P, построить следующие матрицы:

  • : перевод минусP
  • B: ваше вращение (углы Эйлера или любой другой)
  • C: перевод plusP

Конечная матрица вы хотите CBA (в таком порядке, при условии, правое умножения с векторами)

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

  • Нет связанных вопросов^_^