%% trace d'un parallelepipede
%% les parametres
-3 5 setxrange
-1 4 setyrange
/alpha 30 def %% angle de la perspective cavaliere
/beta 70 def %% angle que fait l'arete (BC) avec l'horizontale
/L 4 def
/l 2 def
/h 2 def
/A {-2 0} def %% le coin inférieur gauche de la face avant
/dc .5 def %% l'eloignement pour les traits de cote
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% vecteur pour la translation verticale
/u {
h beta cos mul
h beta sin mul
} def
%% vecteur pour la translation sur la profondeur
/v {
l alpha cos mul
l alpha sin mul
} def
%% la face avant, obtenue par translations du point A
/B {A L 0 addv} def
/C {B u addv} def
/D {A u addv} def
%% on translate la face avant vers l'arriere
[A B C D] %% le tableau de la face avant
%% dup points %% on le duplique puis on marque les sommets
%% (pendant la mise au point)
{v addv} papply %% on additionne le vecteur v (que les matheux
%% me pardonnent) a tous les points du tableau
aload pop %% on vide le tableau sur la pile
/H defpoint %% et on recupere les points en les nommant
/G defpoint
/F defpoint
/E defpoint
%% on dessine les faces
/fillstyle {.9 setgray fill} def
[A B C D] polygone*
/fillstyle {.7 setgray fill} def
[C G F B] polygone*
/fillstyle {.8 setgray fill} def
[D H G C] polygone*
%% les aretes en pointille
gsave
jpegmode
pointilles
[A E H] ligne
[F E] ligne
grestore
%% les definitions poue les segments fleches
/w1 {dc 0} def %% le vecteur pour la translation
/A1 {A w1 subv} def
/D1 {D w1 subv} def
/w2 {0 dc} def %% le vecteur pour la translation
/A2 {A w2 subv} def
/B2 {B w2 subv} def
/w3 {dc 1.5 mul 0} def %% le vecteur pour la translation
/B3 {B w3 addv } def
/F3 {F w3 addv } def
A1 D1 (<->) line
A2 B2 (<->) line
B3 F3 (<->) line
setTimesItalic
(A) A dltext
(B) B drtext
(C) C urtext
(D) D ultext
(E) E ltext
(F) F drtext
(G) G urtext
(H) H ultext
(h) D1 A1 milieu ltext
(L) A2 B2 milieu dtext
(l) B3 F3 milieu drtext
|