Je suis tombé sur un article et j'essaye de refaire une figure. Il s'agit d'un cercle sur cylindre. J'ai cette paramétrisation :
J'ai donc fait un code en python (car pour l'instant, asymptote continue à refuser de me faire de la 3D) que voici :
Code : Tout sélectionner
from mpl_toolkits.mplot3d import Axes3D
from pylab import *
from mpl_toolkits.mplot3d import Axes3D
a = 1
r = 5
fig = figure()
ax = Axes3D(fig)
# On fabrique les deux paramètres u et v
# a priori on est dans des fct trigo, donc entre 0 et 2pi
u = np.linspace(-pi,pi,32)
v = np.linspace(-pi,pi,40)
def x(u,v):
"""
"""
return a*np.cos(u*np.cos(v))
def y(u,v):
"""
"""
return a*np.sin(u*np.cos(v))
def z(v):
"""
"""
return r*np.sin(v)
# On trace les lignes à U constant
for U in u :
X = x(U,v)
Y = y(U,v)
Z = z(v)
ax.plot(X,Y,Z,color='k')
# On trace les lignes à V constant
for V in v :
X = x(u,V)
Y = y(u,V)
Z = z(V)
ax.plot(X,Y,Z,color='r')
# On frabrique la grille en u et v
# Ici, u et v sont des matrices 40*32
u, v = np.meshgrid(u,v)
X = x(u,v)
Y = y(u,v)
Z = z(v)
# on trace la surface
ax.plot_surface(X, Y, Z)#,antialiased=False)
show()
Est-ce que quelqu'un a une idée ?
Est-ce que l'on peut avoir une image sans transparence avec python ?
Olivier