Fichier 3D_56e.jps — Modifié le 10 Décembre 2006 à 18 h 16

3D_56e.pdf
Source
jpegmode
%quadrillage marks
400 setheight
-12 8 setxrange
-6.5 14.5 setyrange

%% la plan de base
/P1 {-9 -4} def
/P2 {4 -6} def
/P3 {8.5 -1} def

/o {0 0 0} def
/o' {0 0 10} def

/vect_I {15 cos 15 sin} def
/vect_J {135 cos 135 sin .8 mulv} def
/vect_K {0 1} def

/xyz2xy {
3 dict begin
   /z exch def
   /y exch def
   /x exch def
   vect_I x mulv
   vect_J y mulv
   vect_K z mulv
   addv addv
end
} def

[/O /O'] 
[o o'] {xyz2xy} capply
mapnp

/r1 5 def
/r2 1.5 def
/ell [O r1 r2 0] def
/ell' [O' r1 r2 0] def
0 ell epoint /A defpoint
0 ell' epoint /A' defpoint
A' A .8 hompoint /a defpoint
180 ell epoint /B defpoint
180 ell' epoint /B' defpoint
/M {-7 -2} def
/N {-.5 -4} def

%% construction de l'intersection
/manip {
3 dict begin
   /M defpoint
   %% pour le point M
   M A ell interdroiteell /M1 defpoint popp
   A A' M1 paral M a interdroite /M2 defpoint
%%    gsave
%%       orange
%%       .4 setlinewidth
%%       mixte
%%       [a M A] ligne
%%       pointilles
%%       [M1 M2] ligne
      M2
%%    grestore
end
} def


%% une astuce pour corriger le bug d'implementation dans
%% l'algorithme de Hobby : on rend la fonction arg continue...
/arg {argc} def

noir 
[4.5 -35 dup neg nto] {M N xdpoint manip} apply 
%%dup {times} plot
{1 1} papply 
[ exch aload pop {down} a] draw

/dotscale {2 dup} def
[a O O' A A'] {times} plot

1.2 setlinewidth
-180 0 ell Ellipse
ell' ellipse
[A A'] ligne
[B B'] ligne
M N 1.5 hompoint N 1.5 trait

gsave
   .8 setlinewidth
   pointilles
   0 180 ell Ellipse
grestore

2 setlinewidth
[-12 P2 P1 xdpoint P2 P3] ligne

12 setfontsize
setTimesItalic
   (a) a drtext   
   (A) A drtext   
   (A') A' drtext   
   (O) O drtext   
   (O') O' drtext   
   (M) M dltext   
   (N) N dltext