Superficie de Revolución en Python

Una superficie de revolución es generada por una curva generatriz que gira alrededor de un eje coordenado correspondiente. Si la curva generatriz gira alrededor del eje Z entonces la ecuación de la superficie de revolución es la siguiente:

$${\large \begin{equation*} S(u,v) = \left(f(u)\cos(v), f(u)\sin(v), h(u) \right) \end{equation*} }$$

Donde ${\large (u, v) = \mathbb{R} \times [0, 2\pi] }$

No obstante para este caso solo haremos el caso particular en el cual la curva generatriz es una función $ {\large f = h(u) } $ respectivamente.

Cuerno de Gabriel


Importamos las librerías correspondientes
 
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

def rev(x,y):
    
    fig = plt.figure(figsize=(12,12))
    ax = fig.add_subplot(1, 2, (1,2), projection '3d')
    
    t = np.linspace(0, 2*np.pi, 100)
    xn = np.outer(y, np.cos(t))
    yn = np.outer(y, np.sin(t))
    zn = np.zeros_like(xn)
    
    for i in range(len(x)):
        zn[i:i+1,:] = np.full_like(zn[0,:], t[i])
        
    ax.plot_surface(xn, yn, zn)
    ax.set_xlabel("EJE X", size = 20)
    ax.set_ylabel("EJE Y", size = 20)
    ax.set_zlabel("EJE Z", size 20)
    ax.grid()
    ax.view_init(elev=15, azim=i*3)
    plt.show()
    return rev


Esfera



Gaussiana



Cono



Paraboloide



Cilindro



Pseudoesfera



Catenoide

Comentarios