Source
usecolor
-2 2 setxrange
-2 3 setyrange

%% echelle
100 setxunit

%% position de la camera
8 8 8 SetCamPos
0 0 0 SetCamView

2 setlinejoin 

%% dessin de la sphere
/aretescachees false def
usecolor
-2 2 setxrange
-2 3 setyrange

%% echelle
100 setxunit

%% position de la camera
8 8 8 SetCamPos
0 0 0 SetCamView

2 setlinejoin

%% dessin de la sphere
/aretescachees false def
.5 setlinewidth         %% epaisseur du trait
.6 setgray              %% niveau de gris
2 [18 36] newsphere     %% rayon + nb d'horizontales et verticales
drawsolid

%% les axes
%0 2 2 axesRVB

%% r, theta, phi
/O {0 0 0} def
/N {2 0 0} def
/A {2 70 48} def
/M {2 0 48} def
/X {2 32 47.5} def
/Y {2 72 20} def
/Z {2 -20 40} def

%% les essais
1.5 setlinewidth
blue
N A arcspherique
N M arcspherique
M A arcspherique

noir
.5 setlinewidth
pointilles
A M geodesique_sphere

%% on marque les points
bleu
A rtp2xyz point3d
M rtp2xyz point3d
N rtp2xyz point3d

%% et on inscrit leurs noms
noir
18 setfontsize
setTimesItalic
      (N) N rtp2xyz uctext3d
blue
   (Ankara) A rtp2xyz crtext3d
   (Madrid) M rtp2xyz cltext3d

noir
<tex>
$\varphi$
</tex>
X rtp2xyz [2 2] crtexlabel3d

blue
<tex>
$90^\circ\!-\!\beta_A$
</tex>
Y rtp2xyz [2 2] crtexlabel3d

<tex>
$90^\circ\!-\!\beta_M$
</tex>
Z rtp2xyz [2 2] crtexlabel3d