Page 1 sur 1

Placement des Labels en 3D

MessagePosté: Jeudi 25 Février 2010, 16:14
par cjorssen
Bonjour,

Je ne comprends pas bien comment sont placés les Labels en 3D, avec les instructions dot et draw.
Il me semble que N ou W ne suffit pas en 3D (il manque une information de direction ?).
D'autre part, est-il possible de dire qu'un label doit être dans un plan (et du coup qu'il soit vu en perspective ?).

Merci d'avance
Christophe

Re: [Asymptote] Placement des Label en 3D

MessagePosté: Jeudi 25 Février 2010, 16:42
par OG
Bonjour

Effectivement je n'avais pas vraiment regardé le placement "fin" des étiquettes en 3D.
Il faut utiliser les directions X,Y et Z. Par exemple

Code: Tout sélectionner
import three;
import graph3;
size(200,0);

label("O",O,2X-2Y,red);
label("O",O,2X+2Y,black);
label("O",O,2X+2Z,green);
label("O",O,blue);
dot(Label("$x$",2X-2Y),.5X);
dot(X);
dot(Y);
dot(Z);
xaxis3(Label("$x$"),red,Arrow3);
yaxis3(Label("$y$"),red,Arrow3);
zaxis3(XYZero(extend=true),red,Arrow3);


Mais je n'ai pas vraiment compris.

O.G.

Re: [Asymptote] Placement des Label en 3D

MessagePosté: Jeudi 25 Février 2010, 17:21
par GMaths
Comparer les résultats des trois exemples suivants (penser à faire tourner la figure) :

Code: Tout sélectionner
size(400);
import three;
import graph3;
currentlight=nolight;

real x=.9;
triple P=(x,x,x);

draw(scale3(x)*unitcube,orange,black);
limits(O,X+Y+Z);
xaxis3(Label("$x$"),red,Arrow3);
yaxis3(Label("$y$"),red,Arrow3);
zaxis3(Label("$z$"),red,Arrow3);

label("A",P,X,blue);
label("B",P,Y,green);
label("C",P,Z,red);


Code: Tout sélectionner
settings.autobillboard=false;

size(400);
import three;
import graph3;
currentlight=nolight;

real x=.9;
triple P=(x,x,x);

draw(scale3(x)*unitcube,orange,black);
limits(O,X+Y+Z);
xaxis3(Label("$x$"),red,Arrow3);
yaxis3(Label("$y$"),red,Arrow3);
zaxis3(Label("$z$"),red,Arrow3);

label("A",P,X,blue);
label("B",P,Y,green);
label("C",P,Z,red);


Code: Tout sélectionner
settings.autobillboard=false;

size(400);
import three;
import graph3;
currentlight=nolight;

transform3 t=scale3(4),
           r=rotate(90,X);

real x=.9;
triple P=(x,x,x);

draw(scale3(x)*unitcube,orange,black);
limits(O,X+Y+Z);
xaxis3(t*Label("$x$"),red,Arrow3);
yaxis3(t*Label("$y$"),red,Arrow3);
zaxis3(r*t*Label("$z$"),red,Arrow3);

label(t*"A",P,X,blue);
label(t*"B",P,Y,green);
label(t*"C",P,Z,red);
label(r*t*"D",P,Z,.5green);