Fichier viviani_04.jps — Modifié le 12 Février 2008 à 17 h 56
%% d'apres les donnees de
%% http://www.mathcurve.com/courbes3d/viviani/viviani.shtml
-2 2 setxrange
-2 2 setyrange
150 setxunit
10 10 6 SetCamPos
0 0 0 SetCamView
-10 10 setxrange3d
-3 3 setyrange3d
2 setlinejoin
rouge
/g {
3 dict begin
settvar
#rpn# (Cos (t))^2
#rpn# Cos (t)* Sin (t)
#rpn# Sin (t)
end
} def
/g' {
3 dict begin
settvar
#rpn# -2 * Sin (t) * Cos (t)
#rpn# - Sin (t)* Sin (t) + Cos (t)* Cos (t)
#rpn# Cos (t)
end
} def
/g'' {
3 dict begin
settvar
#rpn# -2*Cos(t)*Cos(t) + 2*Sin(t)*Sin(t)
#rpn# -2*Cos(t)*Sin(t) -2*Sin(t)*Cos(t)
#rpn# -Sin(t)
end
} def
0 pi 2 mul {g} CourbeR3
% stop
.3 setlinewidth
%/aretescachees false def
noir
%GetCamPos setlightsrc
%solidgridOff
/defaultsolidmode 3 def
.98 [36 36] newsphere
dup videsolid
dup (.3 setfillopacity .3 setgray) (.3 setfillopacity jaune) inoutputcolors
-1 .475 1 [36 36] newcylindrecreux
{.49 0 0 translatepoint3d} solidtransform
dup (.3 setfillopacity .3 setgray) (.3 setfillopacity jaune) inoutputcolors
solidfuz
0 2 pi mul (g) .02 [120 12] newtube
dup (rouge) outputcolors
solidfuz
drawsolid**