MATLAB: Triangular surface

delauney triangular

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

Best Answer

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