Label en 3D

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Label en 3D

Messagepar rebouxo » Mardi 05 Avril 2016, 16:49

Bonjour à tous. Je suis maintenant assez autonome avec asymptote, mais là, je ne vois pas comment régler mon problème de label.

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
Fichiers joints
lampe.png
lampe.png (12.76 Kio) Vu 323 fois
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6803
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Label en 3D

Messagepar rebouxo » Mercredi 06 Avril 2016, 09:56

Je vais me répondre. En y réfléchissant hier soir, je me suis dis qu'il fallait savoir ce que je voulais. Si c'est de la 3d, ben les labels sont en 3d et donc ceux qui sont derrière la figure sont forcément derrière. Autrement dit la demande est déraisonnable.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6803
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités