Visualizing Viviani's curve

(1 comment)

Viviani's curve is the line of intersection between a sphere of radius $2a$ and a cylinder of radius $a$ which is tangent to the sphere and also passes through its centre.

enter image description here

The shape has the following parametric equation:

$$ f(t) = \left( a(1+\cos t), a \sin t, 2a\sin \textstyle \frac{t}{2} \right), \quad 0 \le t \le 4\pi. $$

It is calculated and plotted using Matplotlib in the following code.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# The cylinder radius; the intersecting sphere has radius 2a.
a = 1

# Number of points of the parametric function to calculate.
n = 100
t = np.linspace(0, 4*np.pi, n)
# Cartesian coordinates of the Viviani curve.
x = a * (1 + np.cos(t))
y = a * np.sin(t)
z = 2 * a * np.sin(t/2)

fig = plt.figure(figsize=plt.figaspect(1.))
ax = fig.add_subplot(111, projection='3d')

# Outline the intersecting sphere and cylinder in light grey circles.
ng = n//2 + 1
# We only need to go from 0 to 2π for circles!
theta = t[:ng]
for phi in np.linspace(-np.pi,np.pi,32):
    # Circles on the sphere in two perpendicular planes.
    ax.plot(2*a*np.sin(theta)*np.cos(phi), 2*a*np.cos(theta)*np.cos(phi),
        2*a*np.sin(phi), 'gray', alpha=0.2, lw=1)
    ax.plot(2*a*np.cos(theta)*np.cos(phi), [2*a*np.sin(phi)]*ng,
        2*a*np.sin(theta)*np.cos(phi), 'gray', alpha=0.2,lw=1)
    # The circles of the cylinder.
    ax.plot(a*np.sin(theta)+a, a*np.cos(theta), 2*a*phi/np.pi,
            'm', alpha=0.2, lw=1)

ax.plot(x, y, z, 'r', lw=4)

# Tidy up by switching off the axes and setting the view orientation.
ax.set_axis_off()
ax.view_init(0, 50)
plt.savefig('viviani.png')
plt.show()
Current rating: 3.7

Comments

Comments are pre-moderated. Please be patient and your comment will appear soon.

Bodale Laurentiu-Marius 5 months ago

If I remember well the Viviani's curve is related whit a problem at the begining of calculus:The Geometry have Temple whit a hemisphere at the top(which stay on seven pillars),in which are practiced four holes in such a way that surface left is perfectly quadratic?.Well,I'm not a matematician,exactly,how much is the surface left?Maybe a demonstration?

Link | Reply
Currently unrated

New Comment

required

required (not published)

optional

required