This function calculates the volume of a polygon revolved around the Z-axis. Call using vol = volRevolve(R,Z), where R and Z are one-dimensional vectors tracing out a polygon (in the X-Z plane) and the output vol is the volume of the solid of revolution, in the same units as the inputs (cubed).
The R and Z vectors must be in order, counter-clockwise around the area being defined. If not, this function will give the volume of the counter-clockwise parts, minus the volume of the clockwise parts.
It does not matter if the curve is open or closed - if it is open (i.e., the last point doesn't overlap the first point), this function will automatically close it.
It is based on the technique in Advanced Mathematics and Mechanics Applications with MATLAB, 3rd ed., by H.B. Wilson, L.H. Turcotte, and D. Halpern, Chapman & Hall / CRC Press, 2002, e-ISBN 978-1-4200-3544-5. See Chapter 5, Section 5.4, doi: 10.1201/9781420035445.ch5
This function is standalone and does not require any other non-standard functions to exist.
Inspired by: Area and volume properties
Create scripts with code, output, and formatted text in a single executable document.