Quelle est la différence entre une transformation ponctuelle et une transformation vectorielle?

11

Voici ce que mon conférencier m'a dit au cours:

Nous ne considérons que les matrices 4 * 4. Ils sont utilisés pour faire pivoter, mettre à l'échelle ou traduire des objets (ou toute combinaison de ces opérations). Les matrices sont également utilisées plus tard dans la mise en œuvre du modèle de caméra virtuelle. Si vous ne connaissez pas la différence entre une transformation vectorielle et une transformation ponctuelle, recherchez-la.

Je n'arrive pas à trouver une réponse et j'ai créé un compte pour ce site Web juste pour cette question.

SA
la source
1
En complément de toutes les autres réponses et parce que d'autres personnes ont déjà répondu longuement à cette question ailleurs, vous pouvez vérifier: scratchapixel.com/lessons/…
user18490

Réponses:

9

Voici la réponse simple.

Dans 4D, pour pouvoir les multiplier par une matrice 4x4, les vecteurs sont représentés comme (x, y, z, 0) et les points sont représentés comme (x, y, z, 1).

Étant donné que la 4ème ligne d'une matrice 4x4 représente la traduction de la matrice, les représentations ci-dessus font que les points sont affectés par la traduction, mais pas les vecteurs.

Les vecteurs et les points sont cependant affectés par la rotation, la mise à l'échelle, etc.

Caveat:

Il y a une discussion plus approfondie si vous vous attendez à ce que les vecteurs aient certaines propriétés. Par exemple, si vous transformez la normale d'un triangle par la même matrice que vous transformez les sommets du triangle, ce ne sera probablement plus le vecteur normal de ce triangle. En effet, les vecteurs normaux ont une sorte de relation inverse avec les sommets à partir desquels ils sont calculés.

Alan Wolfe
la source
Les normales ne fonctionnent pas car ce ne sont pas des vecteurs. Je ne connais pas une bonne introduction au concept.
MB Reynolds
@MBReynolds Dans un sens mathématique, les normales sont aussi des vecteurs que des points ou des directions. Le problème ici est que les transformations que nous appliquons aux points d'une surface pour les transformer ne s'appliquent pas aux normales.
nbro
2
les normales de surface sont des bivecteurs, pas des vecteurs. On peut trouver une normale par le produit croisé de deux vecteurs, le résultat est un bivecteur. VOIR Per Vogensen: gist.github.com/pervognsen/c6b1d19754c2e8a38b10886b63d7bf2d
MB Reynolds
4

4×44×4

4×4

Maintenant, la question est: comment passer d'un système de coordonnées 3D à un système 4D ? La réponse est " coordonnées homogènes ".

4×4

4×44×43D

Comment faisons-nous ça?

Nous distinguons les vecteurs de direction et de position . Les vecteurs de direction, comme leur nom l'indique, ont une direction vers laquelle ils pointent; nous nous soucions également de leur longueur, mais ils ne sont pas affectés par les traductions, car nous ne nous soucions pas de leur position. Les vecteurs de position (ou simplement «points») peuvent être déplacés ou déplacés; ils sont généralement représentés par rapport à l'origine, c'est-à-dire comme un vecteur de l'origine au point lui-même.

0401

3Dv=(v1v2v3)v=(v1v2v30)u=(u1u2u3)u=(u1u2u31)

3D4th10

nbro
la source
(wx,wy,wz,w)w0(x,y,z)w=1wen utilisant également la multiplication matricielle 4D.
Ilmari Karonen
2

Si vous recherchez la définition d'un vecteur et d'un point, alors un vecteur est:

Une quantité, telle que la vitesse, complètement spécifiée par une grandeur et une direction. http://www.thefreedictionary.com/vector

Et un point est:

Un objet géométrique sans dimension qui n'a de propriétés que l'emplacement. http://www.thefreedictionary.com/point

On pourrait donc dire qu'un vecteur est une direction avec une échelle et un point est un emplacement.

Donc, si vous transformez un vecteur, il vous suffit de le faire pivoter et de le mettre à l'échelle. Avec un point, vous le traduisez également (la rotation et la mise à l'échelle d'un point se font autour de l'origine, car il n'est qu'un emplacement où le point lui-même ne peut pas être tourné).

La plupart du temps, un vecteur et un point sont placés dans le même conteneur, un vecteur à 4 composantes. La seule différence est le composant w. Si la composante w est 0, alors c'est une direction. S'il vaut 1, alors le vecteur est un point.

La raison de ceci peut être trouvée dans la matrice elle-même. Il utilise la façon dont vous multipliez un vecteur à 4 composants avec une matrice 4x4. Si vous ne savez pas comment cela fonctionne, je suggérerais un rapide google.

[rot+scalerot+scalerot+scaletranslationrot+scalerot+scalerot+scaletranslationrot+scalerot+scalerot+scaletranslation0001]

Comme vous pouvez le voir, si le dernier composant est 0, alors vous avez une multiplication avec 0 et donc le résultat est 0 et il n'y a pas de traduction.

Cela le rend facile dans l'infographie avec des objets polygonaux. Vous avez la même matrice de transformation pour transformer les positions mais aussi les normales. Parce que les normales ont leur composant w mis à 0 et le composant w des positions est 1, les normales sont juste tournées (et également mises à l'échelle ce qui peut conduire à des trucs bizarres, donc la plupart du temps la normale est normalisée après. Ce n'est pas '' En fait, il est recommandé d'utiliser la même matrice pour les positions et les rotations à cause des trucs bizarres! Regardez le commentaire de @JarkkoL.) et les positions sont traduites (et pivotées et mises à l'échelle autour de l'origine).

J'espère que je n'ai pas fait d'erreur: P, et cela vous a aidé!

bram0101
la source
2
Les normales ne sont pas transformées avec la même matrice de transformation que les positions. Vous devez calculer l'inverse de la transposition de la sous-matrice 3x3 pour transformer correctement les normales pour les transformations avec une mise à l'échelle et / ou une asymétrie non uniformes.
JarkkoL
@JarkkoL ouais c'est vrai, vous avez raison. Il est préférable de ne pas utiliser la même matrice, mais selon l'implémentation, cela se fait. La plupart du temps, les gens ne se soucient pas beaucoup de l'inclinaison des normales, car ils n'utilisent pas de mise à l'échelle non uniforme ou de mise à l'échelle du tout. Cette partie sur la transformation des positions et des normales était plus sur le fait qu'il pourrait être utile d'utiliser un seul conteneur.
bram0101