maths.volume

Find the volume of various shapes.

Functions

main()

Print the Results of Various Volume Calculations.

vol_circular_cylinder(→ float)

vol_cone(→ float)

vol_conical_frustum(→ float)

vol_cube(→ float)

Calculate the Volume of a Cube.

vol_cuboid(→ float)

Calculate the Volume of a Cuboid.

vol_hemisphere(→ float)

vol_hollow_circular_cylinder(→ float)

Calculate the Volume of a Hollow Circular Cylinder.

vol_icosahedron(→ float)

vol_prism(→ float)

vol_pyramid(→ float)

vol_right_circ_cone(→ float)

vol_sphere(→ float)

vol_spheres_intersect(→ float)

Calculate the volume of the intersection of two spheres.

vol_spheres_union(→ float)

Calculate the volume of the union of two spheres that possibly intersect.

vol_spherical_cap(→ float)

Calculate the volume of the spherical cap.

vol_torus(→ float)

Module Contents

maths.volume.main()

Print the Results of Various Volume Calculations.

maths.volume.vol_circular_cylinder(radius: float, height: float) float
Calculate the Volume of a Circular Cylinder.
Returns:

\(\pi \cdot radius^2 \cdot height\)

>>> vol_circular_cylinder(1, 1)
3.141592653589793
>>> vol_circular_cylinder(4, 3)
150.79644737231007
>>> vol_circular_cylinder(1.6, 1.6)
12.867963509103795
>>> vol_circular_cylinder(0, 0)
0.0
>>> vol_circular_cylinder(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_circular_cylinder() only accepts non-negative values
>>> vol_circular_cylinder(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_circular_cylinder() only accepts non-negative values
maths.volume.vol_cone(area_of_base: float, height: float) float
Calculate the Volume of a Cone.
Returns:

\(\frac{1}{3} \cdot area\_of\_base \cdot height\)

>>> vol_cone(10, 3)
10.0
>>> vol_cone(1, 1)
0.3333333333333333
>>> vol_cone(1.6, 1.6)
0.8533333333333335
>>> vol_cone(0, 0)
0.0
>>> vol_cone(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_cone() only accepts non-negative values
>>> vol_cone(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_cone() only accepts non-negative values
maths.volume.vol_conical_frustum(height: float, radius_1: float, radius_2: float) float
Calculate the Volume of a Conical Frustum.
>>> vol_conical_frustum(45, 7, 28)
48490.482608158454
>>> vol_conical_frustum(1, 1, 2)
7.330382858376184
>>> vol_conical_frustum(1.6, 2.6, 3.6)
48.7240076620753
>>> vol_conical_frustum(0, 0, 0)
0.0
>>> vol_conical_frustum(-2, 2, 1)
Traceback (most recent call last):
    ...
ValueError: vol_conical_frustum() only accepts non-negative values
>>> vol_conical_frustum(2, -2, 1)
Traceback (most recent call last):
    ...
ValueError: vol_conical_frustum() only accepts non-negative values
>>> vol_conical_frustum(2, 2, -1)
Traceback (most recent call last):
    ...
ValueError: vol_conical_frustum() only accepts non-negative values
maths.volume.vol_cube(side_length: float) float

Calculate the Volume of a Cube.

>>> vol_cube(1)
1.0
>>> vol_cube(3)
27.0
>>> vol_cube(0)
0.0
>>> vol_cube(1.6)
4.096000000000001
>>> vol_cube(-1)
Traceback (most recent call last):
    ...
ValueError: vol_cube() only accepts non-negative values
maths.volume.vol_cuboid(width: float, height: float, length: float) float

Calculate the Volume of a Cuboid.

Returns:

multiple of width, length and height

>>> vol_cuboid(1, 1, 1)
1.0
>>> vol_cuboid(1, 2, 3)
6.0
>>> vol_cuboid(1.6, 2.6, 3.6)
14.976
>>> vol_cuboid(0, 0, 0)
0.0
>>> vol_cuboid(-1, 2, 3)
Traceback (most recent call last):
    ...
ValueError: vol_cuboid() only accepts non-negative values
>>> vol_cuboid(1, -2, 3)
Traceback (most recent call last):
    ...
ValueError: vol_cuboid() only accepts non-negative values
>>> vol_cuboid(1, 2, -3)
Traceback (most recent call last):
    ...
ValueError: vol_cuboid() only accepts non-negative values
maths.volume.vol_hemisphere(radius: float) float
Calculate the volume of a hemisphere
Returns:

\(\frac{2}{3} \cdot \pi \cdot radius^3\)

>>> vol_hemisphere(1)
2.0943951023931953
>>> vol_hemisphere(7)
718.377520120866
>>> vol_hemisphere(1.6)
8.57864233940253
>>> vol_hemisphere(0)
0.0
>>> vol_hemisphere(-1)
Traceback (most recent call last):
    ...
ValueError: vol_hemisphere() only accepts non-negative values
maths.volume.vol_hollow_circular_cylinder(inner_radius: float, outer_radius: float, height: float) float

Calculate the Volume of a Hollow Circular Cylinder.

>>> vol_hollow_circular_cylinder(1, 2, 3)
28.274333882308138
>>> vol_hollow_circular_cylinder(1.6, 2.6, 3.6)
47.50088092227767
>>> vol_hollow_circular_cylinder(-1, 2, 3)
Traceback (most recent call last):
    ...
ValueError: vol_hollow_circular_cylinder() only accepts non-negative values
>>> vol_hollow_circular_cylinder(1, -2, 3)
Traceback (most recent call last):
    ...
ValueError: vol_hollow_circular_cylinder() only accepts non-negative values
>>> vol_hollow_circular_cylinder(1, 2, -3)
Traceback (most recent call last):
    ...
ValueError: vol_hollow_circular_cylinder() only accepts non-negative values
>>> vol_hollow_circular_cylinder(2, 1, 3)
Traceback (most recent call last):
    ...
ValueError: outer_radius must be greater than inner_radius
>>> vol_hollow_circular_cylinder(0, 0, 0)
Traceback (most recent call last):
    ...
ValueError: outer_radius must be greater than inner_radius
maths.volume.vol_icosahedron(tri_side: float) float
Calculate the Volume of an Icosahedron.
>>> from math import isclose
>>> isclose(vol_icosahedron(2.5), 34.088984228514256)
True
>>> isclose(vol_icosahedron(10), 2181.694990624912374)
True
>>> isclose(vol_icosahedron(5), 272.711873828114047)
True
>>> isclose(vol_icosahedron(3.49), 92.740688412033628)
True
>>> vol_icosahedron(0)
0.0
>>> vol_icosahedron(-1)
Traceback (most recent call last):
    ...
ValueError: vol_icosahedron() only accepts non-negative values
>>> vol_icosahedron(-0.2)
Traceback (most recent call last):
    ...
ValueError: vol_icosahedron() only accepts non-negative values
maths.volume.vol_prism(area_of_base: float, height: float) float
Calculate the Volume of a Prism.
Returns:

\(V = B \cdot h\)

>>> vol_prism(10, 2)
20.0
>>> vol_prism(11, 1)
11.0
>>> vol_prism(1.6, 1.6)
2.5600000000000005
>>> vol_prism(0, 0)
0.0
>>> vol_prism(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_prism() only accepts non-negative values
>>> vol_prism(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_prism() only accepts non-negative values
maths.volume.vol_pyramid(area_of_base: float, height: float) float
Calculate the Volume of a Pyramid.
Returns:

\(\frac{1}{3} \cdot B \cdot h\)

>>> vol_pyramid(10, 3)
10.0
>>> vol_pyramid(1.5, 3)
1.5
>>> vol_pyramid(1.6, 1.6)
0.8533333333333335
>>> vol_pyramid(0, 0)
0.0
>>> vol_pyramid(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_pyramid() only accepts non-negative values
>>> vol_pyramid(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_pyramid() only accepts non-negative values
maths.volume.vol_right_circ_cone(radius: float, height: float) float
Calculate the Volume of a Right Circular Cone.
Returns:

\(\frac{1}{3} \cdot \pi \cdot radius^2 \cdot height\)

>>> vol_right_circ_cone(2, 3)
12.566370614359172
>>> vol_right_circ_cone(0, 0)
0.0
>>> vol_right_circ_cone(1.6, 1.6)
4.289321169701265
>>> vol_right_circ_cone(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_right_circ_cone() only accepts non-negative values
>>> vol_right_circ_cone(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_right_circ_cone() only accepts non-negative values
maths.volume.vol_sphere(radius: float) float
Calculate the Volume of a Sphere.
Returns:

\(\frac{4}{3} \cdot \pi \cdot r^3\)

>>> vol_sphere(5)
523.5987755982989
>>> vol_sphere(1)
4.1887902047863905
>>> vol_sphere(1.6)
17.15728467880506
>>> vol_sphere(0)
0.0
>>> vol_sphere(-1)
Traceback (most recent call last):
    ...
ValueError: vol_sphere() only accepts non-negative values
maths.volume.vol_spheres_intersect(radius_1: float, radius_2: float, centers_distance: float) float

Calculate the volume of the intersection of two spheres.

The intersection is composed by two spherical caps and therefore its volume is the sum of the volumes of the spherical caps. First, it calculates the heights \((h_1, h_2)\) of the spherical caps, then the two volumes and it returns the sum. The height formulas are

\[ \begin{align}\begin{aligned}h_1 = \frac{(radius_1 - radius_2 + centers\_distance) \cdot (radius_1 + radius_2 - centers\_distance)} {2 \cdot centers\_distance}\\h_2 = \frac{(radius_2 - radius_1 + centers\_distance) \cdot (radius_2 + radius_1 - centers\_distance)} {2 \cdot centers\_distance}\end{aligned}\end{align} \]

if centers_distance is 0 then it returns the volume of the smallers sphere

Returns:

vol_spherical_cap (\(h_1\), \(radius_2\)) + vol_spherical_cap (\(h_2\), \(radius_1\))

>>> vol_spheres_intersect(2, 2, 1)
21.205750411731103
>>> vol_spheres_intersect(2.6, 2.6, 1.6)
40.71504079052372
>>> vol_spheres_intersect(0, 0, 0)
0.0
>>> vol_spheres_intersect(-2, 2, 1)
Traceback (most recent call last):
    ...
ValueError: vol_spheres_intersect() only accepts non-negative values
>>> vol_spheres_intersect(2, -2, 1)
Traceback (most recent call last):
    ...
ValueError: vol_spheres_intersect() only accepts non-negative values
>>> vol_spheres_intersect(2, 2, -1)
Traceback (most recent call last):
    ...
ValueError: vol_spheres_intersect() only accepts non-negative values
maths.volume.vol_spheres_union(radius_1: float, radius_2: float, centers_distance: float) float

Calculate the volume of the union of two spheres that possibly intersect.

It is the sum of sphere \(A\) and sphere \(B\) minus their intersection. First, it calculates the volumes \((v_1, v_2)\) of the spheres, then the volume of the intersection \(i\) and it returns the sum \(v_1 + v_2 - i\). If centers_distance is 0 then it returns the volume of the larger sphere

Returns:

vol_sphere (\(radius_1\)) + vol_sphere (\(radius_2\)) - vol_spheres_intersect (\(radius_1\), \(radius_2\), \(centers\_distance\))

>>> vol_spheres_union(2, 2, 1)
45.814892864851146
>>> vol_spheres_union(1.56, 2.2, 1.4)
48.77802773671288
>>> vol_spheres_union(0, 2, 1)
Traceback (most recent call last):
    ...
ValueError: vol_spheres_union() only accepts non-negative values, non-zero radius
>>> vol_spheres_union('1.56', '2.2', '1.4')
Traceback (most recent call last):
    ...
TypeError: '<=' not supported between instances of 'str' and 'int'
>>> vol_spheres_union(1, None, 1)
Traceback (most recent call last):
    ...
TypeError: '<=' not supported between instances of 'NoneType' and 'int'
maths.volume.vol_spherical_cap(height: float, radius: float) float

Calculate the volume of the spherical cap.

>>> vol_spherical_cap(1, 2)
5.235987755982988
>>> vol_spherical_cap(1.6, 2.6)
16.621119532592402
>>> vol_spherical_cap(0, 0)
0.0
>>> vol_spherical_cap(-1, 2)
Traceback (most recent call last):
    ...
ValueError: vol_spherical_cap() only accepts non-negative values
>>> vol_spherical_cap(1, -2)
Traceback (most recent call last):
    ...
ValueError: vol_spherical_cap() only accepts non-negative values
maths.volume.vol_torus(torus_radius: float, tube_radius: float) float
Calculate the Volume of a Torus.
Returns:

\(2 \pi^2 \cdot torus\_radius \cdot tube\_radius^2\)

>>> vol_torus(1, 1)
19.739208802178716
>>> vol_torus(4, 3)
710.6115168784338
>>> vol_torus(3, 4)
947.4820225045784
>>> vol_torus(1.6, 1.6)
80.85179925372404
>>> vol_torus(0, 0)
0.0
>>> vol_torus(-1, 1)
Traceback (most recent call last):
    ...
ValueError: vol_torus() only accepts non-negative values
>>> vol_torus(1, -1)
Traceback (most recent call last):
    ...
ValueError: vol_torus() only accepts non-negative values