# How to calculate the volume of a facet using convhulln() function?

2 views (last 30 days)
Abdul Suleman on 18 Dec 2016
Answered: Abdul Suleman on 22 Dec 2016
I am getting an error to calculate the volume of the square [0 0 0; 1 0 0; 1 1 0; 0 1 0], using convhulln, coming from qhullmx. Can you please help me on this? Thanks.
John D'Errico on 18 Dec 2016
oops. Not even a cube. Still asleep I guess. Yes, the enclosed volume is zero.
The issue is if the OP is looking to compute a 2-d "volume" of this object, in the plane of the square, thus the area. We don't really know what they are looking to get here.

Image Analyst on 22 Dec 2016
A facet does not have a volume. It will have an area. Perhaps you mean how to get the area. Try using polyarea() though be sure to have your vertices go in a sorted order around the perimeter or else you could get a negative area. (polyarea tells you that the area of a figure eight or bowtie is zero believe it or not.)

Soumya Saxena on 21 Dec 2016
I understand that you are getting an error with the "qhullmx" function while calling the "convhulln" function. You are defining 4 points in a 3D space as follows:
X= [0 0 0; 1 0 0; 1 1 0; 0 1 0]
However, all inputs have the 3rd dimension as 0. The z coordinate is 0. So,these become 4 points in the X-Y plane. This would represent a plane, not a 3D surface. If you put a non zero value in the in one of the 3rd dimension coordinates, the call should be error free. For example:
X= [0 0 0; 1 0 0; 1 1 0; 0 1 1]
convhulln(X)
The output should be:
2 3 1
4 2 1
3 4 1
4 3 2

Abdul Suleman on 22 Dec 2016
I thank Soumya Saxena and Image Analyst for their cooperative attitude. Indeed, I need to calculate the "area" of all facets of a given polytope. As far as I understand, polyarea() works for polygons only. Best, Abdul.