Source
usecolor
-2 2 setxrange
-2 3 setyrange

%% echelle
100 setxunit

%% position de la camera
3 10 6 SetCamPos
0 0 0 SetCamView

2 setlinejoin 

%% dessin de la sphere
%%/aretescachees false def
.2 setlinewidth         %% epaisseur du trait
.7 setgray              %% niveau de gris
2 [18 36] newsphere
drawsolid

noir
%% r, theta, phi
/A {2 85 67.5} def
/An {A 0 -10 addv} def
/Ane {A 7 -7 addv} def
/Anw {A -7 -7 addv} def
/As {A 0 10 addv} def
/Ase {A 7 7 addv} def
/Asw {A -7 7 addv} def
/Ae {A 10 0 addv} def
/Aw {A -10 0 addv} def

%% %% les geodesiques
%% noir
%% .5 setlinewidth
%% pointilles
%% A B geodesique_sphere
%% A C geodesique_sphere
%% B C geodesique_sphere
%% 
%% /fillstyle {AntiqueWhite fill} def
%% continu bleu
%% A B C trianglespherique*

A An (->) arcspherique
A Ane (->) arcspherique
A Anw (->) arcspherique
A As (->) arcspherique
A Ase (->) arcspherique
A Asw (->) arcspherique
A Ae (->) arcspherique
A Aw (->) arcspherique

%% on marque les points
A rtp2xyz point3d

%% et on inscrit leurs noms
noir
18 setfontsize
setTimesItalic
   (N) An rtp2xyz uctext3d
   (S) As rtp2xyz dctext3d
   (E) Ae rtp2xyz crtext3d
   (W) Aw rtp2xyz cltext3d
   (NE) Ane rtp2xyz urtext3d
   (NW) Anw rtp2xyz ultext3d
   (SE) Ase rtp2xyz drtext3d
   (SW) Asw rtp2xyz dltext3d