Page 1 sur 1

Rendu des couleurs en 3D

Posté : lun. 23 nov. 2020, 21:36
par Viserion
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]

Re: Rendu des couleurs en 3D

Posté : lun. 23 nov. 2020, 22:24
par GM
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);

Re: Rendu des couleurs en 3D

Posté : sam. 28 nov. 2020, 13:01
par Viserion
Bonjour,
Désolé pour la réponse tardive !
Merci car le rendu est bien meilleur.
Fabrice