|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre régulier
![]() Inscription : février 2006 Messages : 318 ![]() |
Bonjour,
J'ai différents points 4D (X, Y, Z et W) et je les transforment grâce à des matrices 4x4: Code :
J'ai donc pour ce faire une matrice 3x3 (je n'utilise pas une matrice 2x2 car je dois faire des translations). Problème: on ne sais pas multiplier une matrice 3x3 avec un point 4D. Je transforme donc ma matrice 3x3 en une matrice 4x4: Code :
Code :
Où est mon erreur dans ma façon de faire ? Merci d'avance. |
||||||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Jean-Michel BORLOTFabricant et casseur d'avions Inscription : avril 2004 Messages : 2 984 ![]() |
Salut
Citation:
Euh... chez moi, 0*X+0*Y+1*Z+0*W, ça fait Z... donc pas de transformation... où est-ce que tu as ta transformée?
__________________
"Errare humanum est, sed perseverare diabolicum" Si vous avez un terrain constructible dans l'est du Gers à vendre pas trop cher, contactez-moi par MP. Ma page sur DVP.com : articles Java/Jogl Mon site www.plegat.org |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : février 2006 Messages : 318 ![]() |
Merci pour votre réponse.
La formule "0*X+0*Y+1*Z+0*W" permet de caculer Z et pas W et donc en effet, Z vaudra Z après transformation avec la matrice "matrice2DTransform" vu qu'elle ne touche qu'a X et Y et W. Le problème, c'est que j'ai un point 4D: X, Y, Z, W et pour obtenir un point 3D, je dois diviser ces trois premières composantes par W. Donc => Z = Z / W. A ce moment là ma matrice "matrice2DTransform" à une influence sur Z vu que W<>1. Y a-til moyen de transformer ma matrice 3x3 en une matrice 4x4 sans qu'elle ne touche à W et à Z afin de ne modifier que X et Y. |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Jean-Michel BORLOTFabricant et casseur d'avions Inscription : avril 2004 Messages : 2 984 ![]() |
Ok, c'est le Z final...
Il faudrait de toute façon revoir ta matrice 4x4, là elle n'est pas bonne. En général, pour les transformations, une matrice 4x4 peut se décomposer en:
donc là, si tu ne dois toucher qu'aux X et Y, ça donnerait plutôt une matrice du genre: Code :
Des liens pour approfondir: wikipedia et bien évidemment la FAQ Matrices du site
__________________
"Errare humanum est, sed perseverare diabolicum" Si vous avez un terrain constructible dans l'est du Gers à vendre pas trop cher, contactez-moi par MP. Ma page sur DVP.com : articles Java/Jogl Mon site www.plegat.org |
||
|
00
|
|
|
#5 | |
![]() ![]() Jean-Marc Blanc Inscription : avril 2007 Messages : 2 658 ![]() |
Salut!
Citation:
Jean-Marc Blanc
__________________
Calcul numérique de processus industriels Formation, conseil, développement Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux) |
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : mars 2011 Messages : 433 ![]() |
Dans le contexte, il s'agit d'un abus de langage pour désigner des matrices 3x3 ou 4x4.
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry |
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Inscription : février 2006 Messages : 318 ![]() |
Merci pour vos réponses et les éclaircissements.
Afin de faire ma transformation des points 2D (X, Y et W), je vois mal comment je pourrais me passer de m3x3.e32 (l'élement qui fait tout foiré quand je transforme ma matrice 3x3 en matrice 4x4). J'ai un trapèze définit par 4 points: http://www.comp.nus.edu.sg/~tants/ts...erivation6.jpg Pour info, ce trapèze est symétrique sur l'axe Y (donc les pointillé sur l'image forme un angle droit). J'aimerais trouver une matrice 3x3 qui me transforme ces points afin que mon trapèze devienne un rectangle (comme indiqué par les flèches en rouge sur l'image). Comment faire sans utiliser m3x3.e31 et m3x3.e32 ? Voici ma matrice qui permet cette transformation mais qui utilise m3x3.e32: Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com