%% d'apres les donnees de %% http://www.mathcurve.com/courbes3d/lissajous3d/lissajous3d.shtml -1 1 setxrange -1 1 setyrange 200 setxunit 0.01 0 50 SetCamPos 0 0 0 SetCamView /ScreenDist .2 def -10 10 setxrange3d -3 3 setyrange3d 2 setlinejoin /a 1 def /b 1 def /g { 3 dict begin settvar #rpn# a*Cos(4*t) #rpn# a*Sin(3*t) #rpn# b*Sin(5*t) end } def /g' { 3 dict begin settvar #rpn# -4*a*Sin(4*t) #rpn# 3*a*Cos(3*t) #rpn# 5*b*Cos(5*t) end } def /g'' { 3 dict begin settvar #rpn# -16*a*Cos(4*t) #rpn# -9*a*Sin(3*t) #rpn# -25*b*Sin(5*t) end } def %rouge 0 pi 2 mul {g} CourbeR3 %stop .1 setlinewidth /aretescachees false def GetCamPos setlightsrc %solidgridOff 0 2 pi mul (g) .1 [150 12] newtube %dup (rouge) outputcolors dup [.4 .5] solidputhuecolors %dup videsolid drawsolid**