Les sources de Syracuse equ2_012b.jps
equ2_012b.jpg

%% 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


Page composée par petitParseur[ps2html] le jeudi 20 novembre 2008.