How to measure the volume of a cone using surface area of triangles in matlab?

Illustration
Sawyer - 2020-10-15T11:35:25+00:00
Question: How to measure the volume of a cone using surface area of triangles in matlab?

i am using this code (Mr. David), How to measure volume of whole cone.  MATLAB CODE Coords= load('Bruno_Cone_20000_points.txt') x = Coords(:,1); y = Coords(:,2); z = Coords(:,3); % move to origin x = x-mean(x); y = y-mean(y); z = z-mean(z); % convert to spherical system [t,p,r] = cart2sph(x,y,z); tri = delaunay(t,p); trisurf(tri,x,y,z) % indices of triangle i1 = tri(:,1); i2 = tri(:,2); i3 = tri(:,3); % vectors of triangle base v1 = [x(i1)-x(i2) y(i1)-y(i2) z(i1)-z(i2)]; v2 = [x(i1)-x(i3) y(i1)-y(i3) z(i1)-z(i3)]; A = 1/2*cross(v1,v2,2); % surface of a triangle V = 1/3*dot(A,[x(i1) y(i1) z(i1)],2); % volume of a triangle format long V = sum(abs(V))

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

However I guess what you want is approximate the volume of the (cone) object from the point cloud.

% Cone parameters
R = 10;
h = 20;
N = 10000;
% Generate points in cone
dx = (pi*R^2*h/3/N)^(1/3);
rvec = linspace(-R,R,ceil(2*R/dx));
hvec = linspace(0,h,ceil(h/dx));
[X,Y,Z] = ndgrid(rvec,rvec,hvec);
is_in_cone = (X.^2+Y.^2) <= (R/h*(h-Z)).^2;
x = X(is_in_cone);
y = Y(is_in_cone);
z = Z(is_in_cone);

% Method1: Estimate the volume of the 3D object assuming the object is convex
tri = delaunay(x,y,z);
trisurf(tri,x,y,z)
% indices of triangle
i1 = tri(:,1);
i2 = tri(:,2);
i3 = tri(:,3);
i4 = tri(:,4);
% Method1: Volume by summing tetrahedron
v1 = [x(i1)-x(i2) y(i1)-y(i2) z(i1)-z(i2)];
v2 = [x(i1)-x(i3) y(i1)-y(i3) z(i1)-z(i3)];
v3 = [x(i1)-x(i4) y(i1)-y(i4) z(i1)-z(i4)];
A = 1/2*cross(v1,v2,2);                     % surface of a triangle
V = 1/3*dot(A,v3,2);                        % volume of a tetrahedron
format long
V = sum(abs(V))

% Method2: use CONVHULL
[~,V]=convhull(x,y,z)

% Method3: theoretical volume of a cone computed directly from base radius and heigh
V = pi*R^2*h/3


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!