Triangular surface
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a surface defined in x, y, z and i am able to get a surface produced using surf(x,y,z). However i want to produce a surface composing of triangles rather than quadrilaterals. The surface is essentially a sphere. And i would like it to be displayed as a triangular surface.
I think i need to use trisurf(tri, x,y,z) but i dont understand the "tri" input. Examples use the delauney(x,y) function but i dont understand what this does and what the alternative for a sphere would be.
Thanks
0 Commenti
Risposta accettata
Richard Brown
il 4 Mag 2012
Simple example using DelaunayTri. First create a set of points
N = 1000;
theta = 2*pi*rand(N, 1);
phi = acos(2*rand(N, 1) - 1);
x = cos(theta).*sin(phi);
y = sin(theta).*sin(phi);
z = cos(phi);
Mesh the volume using DelaunayTri
Tfull = DelaunayTri(x, y, z);
Find the triangulation on the boundary using freeBoundary
[T, X] = Tfull.freeBoundary();
trisurf(T, X(:, 1), X(:, 2), X(:, 3))
axis equal
Più risposte (1)
Teja Muppirala
il 7 Mag 2012
There is also the SURF2PATCH function, which can turn quadrilaterals into triangles. For example:
figure;
[x,y,z] = sphere;
s = surf(x,y,z);
patch(surf2patch(s,'triangles'));
delete(s);
shading faceted;
view(3);
axis equal
Or, without the intermediate call to SURF
figure;
[x,y,z] = sphere;
p = surf2patch(x,y,z,'triangles');
p.facevertexcdata = p.vertices(:,3); %Need this to add color
patch(p);
shading faceted;
view(3);
axis equal
0 Commenti
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!