Label en 3D

Bonjour à tous. Je suis maintenant assez autonome avec asymptote, mais là, je ne vois pas comment régler mon problème de label.
La figure me plaît bien. Avec l'opacité cela rend bien les arêtes cachées. Problèmes, cela cache aussi les labels. J'ai essayé de les mettre sur une autre picture, mais rien n'y fait. Des idées ?
Olivier
- Code: Tout sélectionner
import graph ;
import math ;
import geometry ;
import interpolate ;
import solids ;
import three ;
unitsize(0.5cm,0.5cm) ;
currentprojection=orthographic(5,2.5,2.5) ;
real x = 8 ;
real h = 30 - x ;
// Point
triple pA=(x,0,x) ;
triple pB=(x,x,x) ;
triple pC=(0,x,x) ;
triple pD=(0,0,x) ;
triple pA1=(x,0,0) ;
triple pB1=(x,x,0) ;
triple pC1=(0,x,0) ;
triple pD1=(0,0,0) ;
triple pO1=0.5*(pA1+pC1) ;
triple pO=0.5*(pA+pC) ;
triple pS = (pO.x,pO.y,h) ;
// On agrandit le cube unité.
// On le dessine sans lumière et avec transparence, les traits cachés sont alors
// plus clair.
transform3 mul = scale3(x) ;
draw(mul*unitcube,white+opacity(0.7),linewidth(1.5bp)+rgb("0000AC"),nolight) ;
// La pyramide
path3[] faces={
pA--pB--pC--pD--cycle,
pS--pA--pB--cycle,
pS--pB--pC--cycle,
pS--pC--pD--cycle,
pS--pD--pA--cycle,
} ;
draw(surface(faces),white+opacity(0.7),linewidth(1.5bp)+rgb("0000AC"),nolight);
draw(pS--pO1^^pA--pO,linewidth(1.5bp)+rgb("0000AC")+dashed) ;
label("$ A $",pA,W) ;
dot(pA,linewidth(2bp)) ;
label("$ B $",pB,E) ;
dot(pB,linewidth(2bp)) ;
label("$ C $",pC,E) ;
dot(pC,linewidth(2bp)) ;
label("$ D $",pD,W) ;
dot(pD,linewidth(2bp)) ;
label("$ A' $",pA1,W) ;
dot(pA1,linewidth(2bp)) ;
label("$ B' $",pB1,E) ;
dot(pB1,linewidth(2bp)) ;
label("$ C' $",pC1,E) ;
dot(pC1,linewidth(2bp)) ;
label("$ D' $",pD1,W) ;
dot(pD1,linewidth(2bp)) ;
label("$ O $",pO,W) ;
dot(pO,linewidth(2bp)) ;
label("$ O' $",pO1,W) ;
dot(pO1,linewidth(2bp)) ;
label("$ S $",pS,N) ;
dot(pS,linewidth(2bp)) ;
La figure me plaît bien. Avec l'opacité cela rend bien les arêtes cachées. Problèmes, cela cache aussi les labels. J'ai essayé de les mettre sur une autre picture, mais rien n'y fait. Des idées ?
Olivier