Cross-sectional area of a cone(ish)
3 views (last 30 days)
Show older comments
Morning all,
I have a surface that looks something like a lopsided squished cone, hollow in the middle.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/156092/image.jpeg)
I would like to take the cross-sectional area at different heights, but I need some help. I'm sure it shouldn't be too difficult but I can't figure it out today. I can use the countour function to plot the contours at different heights, but not find the area of the cross-section.
Can anyone help me please?
0 Comments
Accepted Answer
John D'Errico
on 31 Aug 2016
And polyarea won't suffice to compute the area of a polygon? It should.
Just generate the contours as desired. Then use polyarea. Easy.
6 Comments
More Answers (2)
Chad Greene
on 31 Aug 2016
Edited: Chad Greene
on 31 Aug 2016
I'd use my C2xyz function which is on File Exchange to easily get the x,y values of a contour line. Below I'm using the built-in peaks data as an example dataset and getting the area of the polygon bounded by the z=6 line.
[X,Y,Z] = peaks(1000);
pcolor(X,Y,Z);
shading interp
colorbar
zval = 6;
hold on
C = contour(X,Y,Z,zval*[1 1],'k');
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/174962/image.png)
[x,y,z] = C2xyz(C);
A = polyarea(x{1},y{1})
A =
0.6661
2 Comments
Chad Greene
on 9 Sep 2016
Hey Sean, the C2xyz function simply converts the difficult-to-interpret C matrix into more intuitive x and y values.
See Also
Categories
Find more on Computational Geometry in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!