%% code jps desormais obsolete (23/09/2003)
-1.5 6 setxrange
-3 5 setyrange
%% le systeme
/L1 .7 def
/l1 4 def
/L2 8 def
/l2 .5 def
/L3 1 def
/l3 .7 def
/L4 3 def
/l4 .7 def
/dt .1 def
%% ========
/A2 {0 2} def
/A1 {l2 2 div l1 2 div add 0} def
/A3 {A1 1.2 mulvecteur 0 L1 2 div L3 2 div add dt add addvecteur} def
/A4 {l1 l4 2 div add l2 2 div add 0} def
/A5 {l1 l2 2 div add L4 2 div .8 mul} def
/P {A3 l3 2 div 0 addvecteur projx} def
%% bidiouille pour la cote L0
/C {A3 projx .7 mulvecteur l3 2 div neg 0 addvecteur} def
%% les indications
/M2 {A3 l3 -2 div 0 addvecteur projx 0 L3 L1 2 div add neg addvecteur} def
/M1 {M2 -.7 -.7 addvecteur} def
/N2 {M2 A4'' A4'' projx orthoproj} def
/N1 {N2 -.7 -.7 addvecteur} def
%% le ressort
/A {l2 2 div 0} def
/B {A3 projx l3 -2 div 0 addvecteur} def
%% les cotes
/B'' {C 0 2 addvecteur} def
/B' {B'' projy} def
/P'' {P 0 3 addvecteur} def
/P' {P'' projy} def
/A4'' {A4 0 4 addvecteur} def
/A4' {A4'' projy} def
%% syntaxe : A bar --> dessine une barre verticale en A
/bar {
gsave
stranslate
verythin setlinewidth
newpath
0 0 smoveto
0 5 rmoveto
0 -10 rlineto
stroke
grestore
} def
%% syntaxe : A Lx Ly rect@ngle
/rect@ngle {
2 dict begin
/Ly exch 2 div def
/Lx exch 2 div def
stranslate
newpath
Lx Ly smoveto
0 Ly -2 mul srlineto
Lx -2 mul 0 srlineto
0 Ly 2 mul srlineto
closepath
end
} def
%% syntaxe : A Lx Ly rectangle
/rectangle {
2 dict begin
gsave
rect@ngle
stroke
grestore
end
} def
%% syntaxe : A Lx Ly rectangle*
/rectangle* {
4 copy
rectangle
2 dict begin
gsave
rect@ngle
clip
fillstyle
grestore
end
} def
%% ==============
/fillstyle {verythin setlinewidth hachure} def
%% .2 .2 setquadrillagestep
%% quadrillage
%%
%% gsave
%% 1 dict begin
%% 1 1 setquadrillagestep
%% /quadrillagegray 0 def
%% currentlinewidth 2 mul setlinewidth
%% quadrillage
%% end
%% grestore
%%
%% marks
%% [A1 A2 A3 A'3 A4 A5 A B] points
gsave
mixte
traceaxes
[0 .7 B projx pop .7] ligne
[0 -.7 B projx pop -.7] ligne
grestore
thin setlinewidth
A3 projx l3 L3 2 mul L1 add rectangle*
A B .7 5 (O) ressort
.7 ytick
P times3
B' B'' (<->) line
P' P'' (<->) line
A4' A4'' (<->) line
M1 M2 (->) line
N1 N2 (->) line
setTimesItalic
(O) O dltext
(P) P urtext
(A) A4 urtext
setTimes
(Butée) N1 dltext
(Masse ) M1 dltext
setTimesItalic
(M) show
%% %% pour la mise au point
%% gsave
%% bleu
%% (A1) A1 drtext
%% (A2) A2 drtext
%% (A3) A3 drtext
%% (A5) A5 drtext
%% (A4) A4 drtext
%% (A4') A4' drtext
%% (A4'') A4'' drtext
%% (P) P urtext
%% (P') P' urtext
%% (P'') P'' urtext
%% (B) B urtext
%% (B') B' urtext
%% (B'') B'' urtext
%% (N1) N1 urtext
%% (N2) N2 urtext
%% (M1) M1 urtext
%% (M2) M2 urtext
%% [A1 A2 A3 A5 A4 A4' A4'' P P' P'' B B' B'' N1 N2 M1 M2] points
%% grestore
B'' bar
P'' bar
gsave
verythin setcourbelinewidth
[A4'' 0 .2 addvecteur A4'' projx pop -2] ligne
grestore
/ell {
A2 0 2.5 translatepoint
l2 .25
} def
-225 45
ell Ellipse
gsave
50 [ell 0] epoint stranslate
.4 .4 scale
[ell 0] ellb 2 sqrt mul
[ell 0] ella neg 2 sqrt mul
atan 10 sub rotate
arrow
grestore
|