Convert 3D polygon into homogeneous matrix
Afficher commentaires plus anciens
Hi. I have defined a 3D polygon creating a vertice and a face matrix to use the function Patch. Now i would like to know: how do i transform my 3D polygon in an homogeneous matrix.
Any clues ?
Thanks for the help.
2 commentaires
Walter Roberson
le 13 Oct 2012
What would the homogenous matrix consist of? For example are you looking to render it into a matrix? If so what value do you want at each location, taking into account that the polygon would in general be colored ?
João Viveiros
le 13 Oct 2012
Modifié(e) : Walter Roberson
le 13 Oct 2012
Réponse acceptée
Plus de réponses (2)
Matt J
le 13 Oct 2012
Couldn't you just transform all of the vertices and recreate the patch? E.g.,
vert_translated=bsxfun(@plus, vert, [3,0,0]);
P=patch('Faces',faces,'Vertices',vert_translated,'FaceColor','r');
Note that invertible linear/affine transformations don't change the faces.
1 commentaire
João Viveiros
le 13 Oct 2012
Matt J
le 13 Oct 2012
Instead of using PATCH, you could also consider using these 2 FEX files,
So first, this willl let you obtain your polyhedron as a set of inequalities A*x<=b
[A,b]=lcon2vert(vert);
Now you can transform the polyhedron as you like by appropriately transforming A and b. In the case of your translation, this would be
Anew=A;
bnew=b-A*[3;0;0];
Finally, you can plot using the plotregion() tool
plotregion(-Anew,-bnew);
Catégories
En savoir plus sur Polygonal Shapes dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!