MATLAB: How do you plot a 3D circle segment

graphicsMATLABplottingshapes

It seems very straightforward to plot 3D polygons using fill3, however instead of a polygon is there a way to plot a circle segment?
Say we have 3 points in space, which represent the centre of the circle and two points on it's circumference, how can I draw the filled arc segment between these two points?

Best Answer

Hi Laurence,
There is no built-in function to plot a segment of a circle. However, it is still possible to do with combinations of existing functions in MATLAB! Assuming that the center is defined as a point in Cartesian coordinates (X, Y, Z), you can add those values to the final x, y, z coordinates before plotting. Although it is easier to start with spherical coordinates, if you have Cartesian coordinates you can use the function cart2sph to convert them to spherical coordinates.
I was unsure if you wanted to plot a "slice" of the sphere that used the full range of the radius, the full range of phi, and the full range of theta, so I added the ability to select a smaller area to plot. Attached is my code to do so- hope this helps!
Related Question