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
.5 setlinewidth         %% epaisseur du trait
.6 setgray              %% niveau de gris
2 [18 36] newsphere     %% rayon + nb d'horizontales et verticales
drawsolid

%% r, theta, phi
/O {0 0 0} def
/N {2 0 0} def
/A {2 80 42} def
/B {2 0 92} def
/X {2 38 60} def
/Y {2 75 22} def
/Z {2 -40 70} def

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

noir
.5 setlinewidth
pointilles
A B geodesique_sphere
%A N geodesique_sphere
%N B geodesique_sphere


%% les essais
%1.2 setlinewidth
%noir
%N T (->) arcspherique
%3.2 setlinewidth
%rouge
%H T (->) arcspherique


%% on marque les points
blue
N rtp2xyz point3d
A rtp2xyz point3d
B rtp2xyz point3d
noir
%O rtp2xyz point3d
%X rtp2xyz point3d

%noir
%1.8 setlinewidth
%[0 0 0 H rtp2xyz] (->) ligne3d
%[0 0 0 T rtp2xyz] (->) ligne3d
%noir
%1.2 setlinewidth
%[0 0 0 N rtp2xyz] (->) ligne3d


%% et on inscrit leurs noms
noir
18 setfontsize
setTimesItalic
   %(O) O rtp2xyz urtext3d
   (N) N rtp2xyz uctext3d
blue
   (Antwerpen) A rtp2xyz crtext3d
   (Brasilia) B 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_B$
</tex>
Z rtp2xyz [2 2] crtexlabel3d