Salut
j'ai un objet3D représenté à l'aide de nuage de points et j'ai voulu savoir comment faire pour agrandir cet objet ou le rendre plus petit.
merci d'avance
Salut
j'ai un objet3D représenté à l'aide de nuage de points et j'ai voulu savoir comment faire pour agrandir cet objet ou le rendre plus petit.
merci d'avance
Bonjour,
tu n'as qu'à appliquer les transformations classiques, le fait que ce soit un nuage de points ne change pas le problème...
Fais une recherche sur les mots clefs "zoom", "agrandissement", "scale" dans ce forum.
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
- Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
-ton poste tu dois marquer quand la bonne réponse tu as obtenu.
L'application d'une simple matrice de transformation de ce type fera l'affaire :
Pour une transformation uniforme on a x=y=z. L'avantage d'avoir un nuage de point, c'est de pouvoir paralleliser le tout (SSE par ex).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 x 0 0 0 0 y 0 0 0 0 z 0 0 0 0 1
Salut
merci PRomu@ld,mais franchement j'ai rien compris.
est-ce que vous pouvez m'expliquer en détails?si ça ne vous dérange pas bien sur.
Si tu n'as même pas un tout petit peu de notions de matrices de transformation je ne vois pas quel espoir tu peux avoir à travailler avec un nuage de points 3D.
http://jeux.developpez.com/faq/matqu...ithmetique#Q11
bonsoir
merci pour les explications,j'ai dés que j'ai vu votre reponse j'ai fait une petite recherche et j'ai compris comment utiliser les matrices de mise à l'echelle et de rotation.
mais dans le cas sur lequelle je travaille je sais pas comment fixer le vecteur de mise à l'echelle(x,y,z)
je vous expliquerai plus: j'ai deux objets de meme type répresentés achacun par un nuage de points l'un est un peu plus grand que l'autre et tout les deux se trouvent dans une boite qui l'englobe.
ce que je dois faire ,c'est agrandir le petit pour qu'il puisse etre englobé par la boite de l'autre et vice versa
Euh, je pensais pas être si abstrait que ça
En fait pour agrandir ou rétrécir un objet, il faut le transformer (pour les déplacer et leur appliquer des rotations aussi).
Afin de les transformer, on leur applique une matrice de transformation. Pour la matrice de mise à l'échelle (ce que tu veux), il s'agit de la matrice que je t'ai donné. Les paramètres x,y et z définissent l'agrandissement sur l'axe x l'axe y et l'axe z. Sachant qu'une valeur de 1 conservera la taille initiale.
Maintenant, je pense que ta question est plutôt comment appliquer la matrice de transformation. Et bien, c'est très simple, c'est de l'algèbre linéaire.
Tu prends un point en 3D sous sa forme homogène :
Le nouveau point est donné par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 P = ( i , j , k , 1 )
Où P' est le nouveau point, M la matrice de transformation et * la multiplication matricielle classique de l'algèbre linéaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part P' = M * P
Comme ici la matrice de transformation est diagonale le résultat est tout simple :
P' = ( x * i , y * j , z * k , 1 )
Il y a plein d'information ici :
http://jeux.developpez.com/faq/matquat/
Partager