var('u v')
def ploha(u,v):
yk=-2/15*cos(u)*(3*cos(v)-30*sin(u)+90*cos(u)^4*sin(u)-60*cos(u)^6*sin(u)+5*cos(u)*cos(v)*sin(u))
zk=1/15*sin(u)*(3*cos(v)-3*cos(u)^2*cos(v)-48*cos(u)^4*cos(v)+48*cos(u)^6*cos(v)-60*sin(u)+5*cos(u)*cos(v)*sin(u)
-5*cos(u)^3*cos(v)*sin(u)-80*cos(u)^5*cos(v)*sin(u)+80*cos(u)^7*cos(v)*sin(u))
xk=2/15*(3+5*cos(u)*sin(u))*sin(v)
return xk,yk,zk
def klein1(u,v):
x = 4*(1-cos(u)/2)*cos(u)*cos(v)+6*cos(u)*(1+sin(u))
y = 4*(1-cos(u)/2)*sin(u)*cos(v)+16*sin(u)
z = 4*(1-cos(u)/2)*sin(v)
return x,y,z
def klein2(u,v):
x = 4*(1-cos(u)/2)*cos(v+pi)+6*cos(u)*(1+sin(u))
y = 16*sin(u)
z = 4*(1-cos(u)/2)*sin(v)
return x,y,z
slika2=parametric_plot3d(klein1(u,v),(u,0,pi), (v,0,2*pi), plot_points=80, color='lemonchiffon')
slika3=parametric_plot3d(klein2(u,v),(u,pi,2*pi), (v,0,2*pi), plot_points=80, color='lemonchiffon')
(slika2+slika3).show(viewer='threejs',online=True,frame=False)