%% auteur :
-2 2 setxrange
-1.5 1.5 setyrange
jpegmode
%% Les courbes enveloppe
/f {setxvar
x Exp x neg Exp add 0.2 mul 0.25 add
} def
/g {
f neg
} def
%% Définition des ellipses internes
/b' {0.5 f} def
/a' {0.2} def
/b'' {0.8 f} def
/a'' {0.2} def
/E1 [0.5 0 a' b' 0] def
/E2 [0.8 0 a'' b'' 0] def
%% la manip pour tracer un trait entre 2 points donnés
%% syntaxe : xA yA xB yB trait
/trait { %%%% la pile
gsave %%
1 dict begin %% pour garder linewidth local
.3 setlinewidth %%
bleu %% xA, yA, xB, yB
[ %% xA, yA, xB, yB, [
5 1 roll %% [, xA, yA, xB, yB
] %% [xA yA xB yB]
ligne %%
end
grestore
} def
%% le style pour hachurer les 2 ellipses internes E1 et E2
/fillstyle {
gsave
.3 setlinewidth
gris
hachure
grestore
} def
%% on hachure la 1ere ellipse, tour en blanc
gsave
blanc
E1 ellipse*
grestore
%% on trace les hachures interellipses
/nbhachures 60 def
gsave
[-90 270 nbhachures nto] dup %% on genere 'nbhachure' nombres entre -90 et 270
{E1 epoint} apply %% on genere les points sur E1
exch
{E2 epoint} apply %% on genere les points sur E2
2 2 Fuz %% on fusionne les 2 tableaux (2 elements du 1er puis 2 elements du 2eme, etc..)
{trait} dapply %% on applique le trait a chaque ensemble de deux points
grestore
%% on hachure la 2eme ellipse, tour en blanc
gsave
blanc
/hangle 30 def
E2 ellipse*
grestore
1.5 setlinewidth
-1.48 1.48 {f} Courbe
-1.48 1.48 {g} Courbe
%tracé des ellipses aux extrémités
/b {1.48 f} def
/a {0.25} def
1.5 0 a b ellipse
90 -90 -1.5 0 a b Ellipse
gsave
1 dict begin
pointilles
.8 setlinewidth
-90 90 -1.5 0 a b Ellipse
end
grestore
%% puis trace des ellipses internes
90 -90 E1 Ellipse
90 -90 E2 Ellipse
.8 setlinewidth
pointilles
-90 90 E1 Ellipse
-90 90 E2 Ellipse
%Tracé du segment fléché "da"
/c {b' 0.1 add} def
/d {b'' 0.1 add} def
/C {0.45 c} def
/D {0.8 d} def
continu
C D (<->) line
/I {C D milieu} def
/J {0.5 -0.75} def
setTimesItalic
noir
(da) I ultext
rouge
(dA) J dtext
|