from sympy import *
from spb import *
import k3d
alpha, u, v, up, vp = symbols("alpha u v u_p v_p")
graphics(
    surface_parametric(
        exp(u) * cos(v - alpha) / 2 + exp(-u) * cos(v + alpha) / 2,
        exp(u) * sin(v - alpha) / 2 + exp(-u) * sin(v + alpha) / 2,
        cos(alpha) * u + sin(alpha) * v,
        prange(u, -up, up), prange(v, 0, vp * pi),
        n=50, use_cm=True, color_func=lambda u, v: v,
        rendering_kw={"color_map": k3d.colormaps.paraview_color_maps.Hue_L60},
        wireframe=True, wf_n2=15, wf_rendering_kw={"width": 0.005},
        params={
            alpha: (0, 0, pi),
            up: (1, 0, 2),
            vp: (2, 0, 2),
        }),
    backend=KB, grid=False,
    title=r"Catenoid \, to \, Right \, Helicoid \, Transformation"
)