Rendu des couleurs en 3D

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
Viserion
Messages : 28
Enregistré le : mar. 24 mars 2020, 20:00

Rendu des couleurs en 3D

Message non lu par Viserion » lun. 23 nov. 2020, 21:36

Bonsoir,
Ma question n'est pas essentielle, mais je la pose quand même !
J'ai remarqué que lorsque l'on construit une figure de l'espace, la couleur n'est pas vraiment celle attendue.
Par exemple, dans le code ci-dessous, la face doit être en orange clair mais, après compilation, ce n'est pas vraiment cela.
Merci.

Code : Tout sélectionner

[import three;
import math;

void drawrightangle(picture pic=currentpicture,
triple M, triple A, triple B,
real radius=0,
pen p=currentpen,
pen fillpen=nullpen,
projection P=currentprojection)
{
p=linejoin(0)+linecap(0)+p;
if (radius==0) radius=arrowfactor*sqrt(2);
transform3 T=shift(-M);
triple OA=radius/sqrt(2)*unit(T*A),
OB=radius/sqrt(2)*unit(T*B),
OC=OA+OB;
path3 _p=OA--OC--OB;
picture pic_;
draw(pic_, _p, p=p);
if (fillpen!=nullpen) draw(pic_, surface(O--_p--cycle), fillpen);
add(pic,pic_,M);}

size(7cm,0);
defaultpen(fontsize(9pt));

pen style1 = linetype("4 4");

pen p = cmyk(0,0.10,0.29,0);

currentprojection=obliqueX;

real a = 5;
triple A = (a,0,0), B = (a,a,0), C = (0,a,0), D = (0,0,0),
       Ep = (a/2,a/2,5);

triple O = midpoint(D--B);

triple I = midpoint(B--C);

draw(surface(Ep--B--C--cycle),p+opacity(0.4));

drawrightangle(I,C,Ep,4mm,fillpen=magenta+opacity(0.5));
drawrightangle(O,C,Ep,4mm,fillpen=magenta+opacity(0.5));
      
draw (Ep--A--B--C--cycle^^Ep--B^^Ep--I);
draw (A--D--Ep^^D--C^^D--B^^A--C^^Ep--O,style1);

dot("$I$",I,S+E);

label("$A$", A, align=S);  label("$B$", B, align=S);
label("$C$", C, align=E);  label("$D$", D, align=W+N);
label("$S$", Ep, align=N); label("$O$", O,align=S);
label("$a$",midpoint(Ep--C),NE,red);
label("$a$",midpoint(A--B),S,red);/code]

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Rendu des couleurs en 3D

Message non lu par GM » lun. 23 nov. 2020, 22:24

Viserion a écrit :
lun. 23 nov. 2020, 21:36
Bonsoir,
Ma question n'est pas essentielle, mais je la pose quand même !
J'ai remarqué que lorsque l'on construit une figure de l'espace, la couleur n'est pas vraiment celle attendue.
Bonsoir, je confirme la difficulté d'avoir parfois les couleurs souhaitées.

Je doute de la ligne de code pour le orange ; je n'ai jamais trouvé que cmyk est la façon la plus commode pour définir une couleur,
au point que j'ai peiné à trouver un site où je pouvais tester les valeurs passées à cmyk.

Essayer cela :

Code : Tout sélectionner

//pen p = orange;//cmyk(0,0.10,0.29,0);
pen p = rgb(255,200,0);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Viserion
Messages : 28
Enregistré le : mar. 24 mars 2020, 20:00

Re: Rendu des couleurs en 3D

Message non lu par Viserion » sam. 28 nov. 2020, 13:01

Bonjour,
Désolé pour la réponse tardive !
Merci car le rendu est bien meilleur.
Fabrice

Répondre