Comment utiliser la routine suivante :
Code : Tout sélectionner
path3 path3(path p, triple plane(pair)=XYplane);
Merci.
Code : Tout sélectionner
path3 path3(path p, triple plane(pair)=XYplane);
Tu comprends bien.Fabrice Couvreur a écrit :Je crois comprendre qu'elle permet de convertir un chemin du plan en un chemin de l'espace. Ce que je ne comprends pas très bien, c'est tous les paramètres de cette routine (triple plane(pair)=XYplane).Code : Tout sélectionner
path3 path3(path p, triple plane(pair)=XYplane);
Code : Tout sélectionner
triple XYplane(pair z) {return (z.x,z.y,0);}
triple YZplane(pair z) {return (0,z.x,z.y);}
triple ZXplane(pair z) {return (z.y,0,z.x);}
Code : Tout sélectionner
triple XYplane(pair z) {return (z.x,z.y,0);}
triple YZplane(pair z) {return (0,z.x,z.y);}
triple ZXplane(pair z) {return (z.y,0,z.x);}
... pour que l'on puisse éventuellement en proposer une version plus courte ?Fabrice Couvreur a écrit :J'ai édité mon dernier post afin de donner le code de la figure.
Code : Tout sélectionner
import three;
currentprojection=obliqueX;
currentlight=nolight;
size(7.5cm);
real a=1;
transform r=rotate(90,(2a,2a));
path p1 = (a,0)--(4a,3a)--(4a,a)--(a,4a)--(3a,4a)--(0,a)--(0,3a)--(3a,0)--cycle,
penta = (0,0)--(a,0)--(2a,a)--(a,2a)--(0,a)--cycle,
p2[] = penta ^^ r*penta ^^ r^2*penta ^^ r^3*penta;
transform3 tX=shift(4a*X), tY=shift(4a*Y), tZ=shift(4a*Z);
path3 f1=path3(p1,XYplane), g1[]=path3(p2,XYplane),
f2=path3(p1,YZplane), g2[]=path3(p2,YZplane),
f3=path3(p1,ZXplane), g3[]=path3(p2,ZXplane),
f[]=f1^^f2^^f3^^tZ*f1^^tX*f2^^tY*f3,
g[]=g1^^g2^^g3^^tZ*g1^^tX*g2^^tY*g3;
draw(surface(f),grey);
draw(surface(g),white);
draw(box((0,0,0),(4a,4a,4a)),1bp+blue);
J'ai jeté un oeil très très rapide à la tienne (il faudra que je regarde cela de plus près plus tard) donc je ne ferai qu'une remarque : ma solution ne pouvait pas ressemblait à la tienne... car je n'utilise bsp que lorsque je suis désespéré de ne pas savoir faire les choses autrement. Cela correspond à des façons de faire antérieures au grand bouleversement introduit avec Asymptote 1.44.Fabrice Couvreur a écrit :Approche différente, mais originale !
De trop même ! Il faudrait que je pense à faire mon travail scolaire.Fabrice Couvreur a écrit :On s'amuse bien !
Code : Tout sélectionner
path p2[] = penta ^^ r*penta ^^ r^2*penta ^^ r^3*penta
Enlève les [] et tu devrais avoir un message d'erreur en console qui te dit : "cannot cast 'path[]' to 'path'", ce qui confirme ce que tu as écrit. ;-)Fabrice Couvreur a écrit :J'ai analysé ton code, et je ne comprends pas très bien ceci :Ce n'est pas au niveau des transformations, mais plutôt au niveau du type ; c'est un tableau ?Code : Tout sélectionner
path p2[] = penta ^^ r*penta ^^ r^2*penta ^^ r^3*penta
--------------The ^^ binary operator, which requests that the pen be moved (without drawing or affecting endpoint
curvatures) from the final point of the left-hand path to the initial point of the right-hand
path, may be used to group several Asymptote paths into a path[] array (equivalent to a
PostScript path)
Sur le même thème de la place des crochets pour définir un tableau :Fabrice Couvreur a écrit :C'est très clair !
Code : Tout sélectionner
real[][] series=...
Code : Tout sélectionner
real[] series[]=...