Source
%% auteur : gh

70 setxunit
-2 5 setxrange
-2 3 setyrange

/coeff 0.7 def  %% coefficient pour diminuer ce qui est en perspective
/a {pi 4 div} def
/cosa {a Cos} def
/sina {a Sin} def

/O {0 0} def
/A {coeff 0 cosa sub mul coeff 0 sina sub mul} def
/B {1 0} def        %% extremites des vecteurs de base
/C {0 1} def
/AA {-10 cosa mul -10 sina mul} def
/BB {10 0} def %% extremites des axes pour tracer 1/2 droites
/CC {0 10} def


16 setfontsize
setTimesItalic
   (O) O dctext

AA A (-) line
BB B (-) line
CC C (-) line

2 setlinewidth

O A (->) line
O B (->) line
O C (->) line

<tex> 
$$
\vec{\imath}
$$ 
</tex> 
O A milieu  [1.5 1.5] ultexlabel 
<tex> 
$$
\vec{\jmath}
$$ 
</tex> 
O B milieu  [1.5 1.5] dctexlabel 
<tex> 
$$
\vec{k}
$$ 
</tex> 
O C milieu  [1.5 1.5] cltexlabel 

%% Fin tracé du repère.

/Mx {O A 3 mulv addv} def
/My {O B 4 mulv addv} def
/Mz {O C 2.5 mulv addv} def

/M {O Mx addv My addv Mz addv} def

/MxOy {O Mx addv My addv} def
/MxOz {O Mx addv Mz addv} def
/MyOz {O My addv Mz addv} def

0.5 setlinewidth
noir
pointilles
M Mz (-) line

continu
1 setlinewidth
gris

M MxOy (-) line


O MxOy (-) line

16 setfontsize
setTimesItalic
   (M) M urtext
   (m) MxOy drtext

1.5 setlinewidth
continu
noir

/arrowscale {1.3 dup} def
O M (-) line
/arrowangle -10 store
A O MxOy 0.3 (->) tripointarc

/arrowangle 10 store
M O C 0.3 (-) tripointarc

24 setfontsize
setSymbol
   (j) -90 O .3 cpoint dctext
   (r) O M milieu ultext
   (q) 70 O .3 cpoint urtext