%@AUTEUR: Jean-Paul Vignault et Thierry Wibrecht %% Sujet d'un post sur la liste syracuse - avril 2008 -7 8 setxrange -7 8 setyrange 50 setxunit /ScreenDist .3 def 2 setlinejoin 20 20 10 SetCamPos 0 0 0 SetCamView %\defFunction{cone}(u,v){u v Cos mul}{u v Sin mul}{u} /F { 3 dict begin /v exch def /u exch def u v Cos mul u v Sin mul u end } def /fu3 { 1 dict begin /t exch def t 1 t end } def /fu4 { 1 dict begin /t exch def t 1 t neg end } def /fu { 1 dict begin /t exch def t 1 #rpn# sqrt(t^2+1.21)-.05 end } def /fu2 { 1 dict begin /t exch def t 1 #rpn# -sqrt(t^2+1.21)+.05 end } def [0 1 0 -1] eq2plan dup [-3 3 -3 3] planputrange dup [.5 dup] planputngrid newplan dup (.5 setfillopacity cyan) solidputcolors /Plan1 exch def -2.5 2.5 0 2 pi mul [21 20] {F} newsurfaceparametree [0 1 0 -1] solideqplansepare /Cone2 exch def /Cone1 exch def Cone2 dup (.7 setfillopacity jaune) solidputcolors dup videsolid drawsolid** gris Plan1 drawsolid* gsave rouge 5 setlinewidth -2.5 2.5 {fu} CourbeR3 -2.5 2.5 {fu2} CourbeR3 3 setlinewidth bleu -2.5 2.5 {fu3} CourbeR3 -2.5 2.5 {fu4} CourbeR3 grestore noir Cone1 dup (.7 setfillopacity jaune) solidputcolors dup videsolid drawsolid**