Différences

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
travaux:surfaces_mathematiques [2010/05/31 02:09]
nico Links to articles:mel-python:annexes:operateurs changed to articles:mel-python:operateurs
travaux:surfaces_mathematiques [2010/10/05 00:21]
nico
Ligne 1: Ligne 1:
 +~~META:date created=2010-04-18~~
 +{{tag>3d programmation python maya 3dsmax vray maths}}
 +====== Surfaces mathématiques ======
  
 +Génération des surfaces : Maya, Mel-Python. \\
 +Images : 3ds max, VRay.
 +
 +{{gallery>​..:​galerie?​500x500&​surface*&​reverse&​showtitle}}
 +
 +===Scripts===
 +
 +Un tutoriel traitant de la génération de surfaces en python sous Maya est disponible ici : [[:​articles:​mel-python:​surface_mathematique]].
 +
 +<file python kleinBottle.py>​
 +##
 +# Klein bottle
 +# p01 2010
 +# Maya python script
 +##
 + 
 +from math import sin, cos, pi
 +from maya.cmds import curve, ls, loft, delete
 + 
 +rad = 1
 +uRes = .1
 +vRes = .1
 + 
 +cvs = []
 +u = -pi
 +while u <= pi :
 +    pts = []
 +    v = -pi
 +    while v <= pi :
 +        x = cos(u) * (rad + sin(v) * cos(u/2) - sin(2*v) * sin(u/2)/2)
 +        y = sin(u) * (rad + sin(v) * cos(u/2) - sin(2*v) * sin(u/2)/2)
 +        z = sin(u/2) * sin(v) + cos(u/2) * sin(2*v)/2
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs)
 +delete(cvs)
 +</​file>​
 +
 +<file python heartSurface.py>​
 +##
 +# Heart surface
 +# p01 2010
 +# Maya python script
 +##
 + 
 +from math import sin, cos, pi, pow, sqrt, fabs
 +from maya.cmds import curve, ls, loft, delete
 + 
 +zRes = .1
 +tRes = .1
 +cut = 0.9
 + 
 +cvs = []
 +z = -cut
 +while z <= cut :
 +    pts = []
 +    t = -pi
 +    while t <= pi :
 +        r = 4 * sqrt(1 - z*z) * pow(sin(fabs(t)),​ fabs(t))
 +        x = r * sin(t)
 +        y = r * cos(t)
 +        t += tRes
 +        pts.append((x,​ y, z))
 +    z += zRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs)
 +delete(cvs)
 +</​file>​
 +
 +<file python dinisSurface.py>​
 +##
 +# Dinis surface
 +# p01 2010
 +# Maya python script
 +##
 + 
 +from math import cos, sin, log, tan, pi
 +from maya.cmds import curve, ls, loft, delete
 + 
 +rad = 5
 +len = 1
 +laps = 3
 +inRad = 0.1
 +uRes = 0.3
 +vRes = 0.1
 + 
 +cvs = []
 +u = 0
 +while u <= laps*2*pi :
 +    pts = []
 +    v = 1.6
 +    while v <= pi-inRad :
 +        x = rad * cos(u) * sin(v)
 +        y = rad * sin(u) * sin(v)
 +        z = rad * (cos(v) + log(tan(v/​2))) + len * u
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs)
 +delete(cvs)
 +</​file>​
 +
 +<file python limpetTorus.py>​
 +##
 +# Limpet torus
 +# p01 2010
 +# Maya python script
 +##
 +
 +from math import sin, cos, pi, sqrt
 +from maya.cmds import curve, ls, loft, delete
 +
 +width  = 1
 +height = 1
 +length = 1
 +uRes = .3
 +vRes = .2
 + 
 +cvs = []
 +u = -pi
 +while u <= pi :
 +    pts = []
 +    v = -pi
 +    while v <= pi :
 +        x = cos(u) / (sqrt(width+1) + sin(v))
 +        y = sin(u) / (sqrt(height+1) + sin(v))
 +        z = (length+1) / (sqrt(length+1) + cos(v)) ​
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs, c=1)
 +delete(cvs)
 +</​file>​
 +
 +<file python pseudocatenoid.py>​
 +##
 +# Pseudocatenoid
 +# p01 2010
 +# Maya python script
 +##
 +
 +from math import sin, cos, tan, pi
 +from maya.cmds import curve, ls, loft, delete
 +
 +uRes = .2
 +vRes = .2
 +
 +cvs = []
 +u = 0
 +while u <= 2 * pi :
 +    pts = []
 +    v = -pi
 +    while v <= pi :
 +        x = cos(u) * (2 + cos(v))
 +        y = sin(u) * (2 + cos(v))
 +        z = x*x - y*y + 2 * x * y * tan(v)*tan(v)
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs, c=1)
 +delete(cvs)
 +</​file>​
 +
 +<file python tractrixBasedSurface.py>​
 +##
 +# Tractrix based surface
 +# p01 2010
 +# Maya python script
 +##
 +
 +from math import cos, cosh, tanh, pi
 +from maya.cmds import curve, ls, loft, delete
 +
 +uRes = .2
 +vRes = .2
 +
 +cvs = []
 +u = 0
 +while u <= 2 * pi :
 +    pts = []
 +    v = -pi
 +    while v <= pi :
 +        x = cos(u) * (v - tanh(v))
 +        y = cos(u) / cosh(v)
 +        z = x*x - y*y + 2 * x * y * tanh(u)*tanh(u)
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs, c=1)
 +delete(cvs)
 +</​file>​
 +
 +<file python triaxialHexatorus.py>​
 +##
 +# Triaxial hexatorus
 +# p01 2010
 +# Maya python script
 +##
 +
 +from math import sin, cos, sqrt, pi
 +from maya.cmds import curve, ls, loft, delete
 +
 +uRes = .2
 +vRes = .2
 +
 +cvs = []
 +u = 0
 +while u <= 2 * pi :
 +    pts = []
 +    v = -pi
 +    while v <= pi :
 +        x = sin(u) / (sqrt(2) + cos(v))
 +        y = sin(u+2*pi/​3) / (sqrt(2) + cos(v+2*pi/​3))
 +        z = cos(u-2*pi/​3) / (sqrt(2) + cos(v-2*pi/​3))
 +        pts.append((x,​ y, z))
 +        v += vRes
 +    u += uRes
 +    curve(p=pts)
 +    cv = ls(sl=1)
 +    cvs.append(cv[0])
 +loft(cvs, c=1)
 +delete(cvs)
 +</​file>​