2016-08-05 1 views
0

Lors de l'utilisation d'une transformation de matrice 3D, est-il possible d'utiliser uniquement une matrice pour chaque objet pour positionner, faire pivoter et mettre à l'échelle l'objet? Aurais-je également besoin de conserver un ensemble distinct d'informations de localisation afin, par exemple, d'effectuer des opérations telles que "tourner autour d'un point arbitraire"?Utilisation d'une matrice pour positionner des objets dans l'espace 3D

Je demande parce que je ne peux pas tout à fait travailler comment (spécifiquement ...) tourner autour d'un point arbitraire, bien que cela se rapporte à la gestion générale de l'information spatiale d'un objet.

Répondre

1

Vous auriez besoin d'une matrice 4x4. Une matrice 3x3 dans l'espace 3D ne décrit que les transformations linéaires, qui n'incluent pas le positionnement (translation). Voir ici pour plus de détails sur la mise en œuvre: http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/. Beaucoup plus sur Google.

E.g. pour tourner autour d'un point arbitraire P, de construire les matrices suivantes:

  • A: traduction par moinsP
  • B: votre rotation (angles d'Euler ou autre)
  • C: traduction par plusP

La matrice finale que vous voulez est ABC (dans cet ordre, en supposant droit multiplication avec des vecteurs)