L'idée est de s'inspirer de la figure ci après :
J'ai fait le code suivant :
Code : Tout sélectionner
size(0,100);
import solids;
currentlight=Viewport;
currentprojection=
perspective(camera=(-5.63534795687991,26.6864095820977,6.26522327603072),
up=(0.00461170107156006,-0.00698084074757348,0.0496974857086522),
target=(4.42609220528381,4.90848448860744,2.27249450035784),
zoom=1,
angle=48.2763968219905,
autoadjust=false);
real r=1;
real h=10;
int a=6;
triple axis=Y;
surface cylinder=align(unit(axis))*scale(r,r,h)*unitcylinder;
for(int x=0 ; x<a-1 ; ++x)
draw(shift(2x,0,0)*cylinder,white,render(merge=true));
for(int x=1 ; x<8 ; x=x+2 )
draw(shift(x,0,sqrt(3))*cylinder,white,render(merge=true));
for(int x=2 ; x<7 ; x=x+2 )
draw(shift(x,0,2*sqrt(3))*cylinder,white,render(merge=true));
for(int x=3 ; x<6 ; x=x+2 )
draw(shift(x,0,3*sqrt(3))*cylinder,white,render(merge=true));
draw(shift(4,0,4*sqrt(3))*cylinder,white,render(merge=true));
Code : Tout sélectionner
asy -f pdf -noprc render=4 tuyaux.asy
Code : Tout sélectionner
warning [version]: using possibly incompatible version 2.70 of plain.asy
error: could not load module 'render=4'
warning [version]: using possibly incompatible version 2.70 of plain.asy
Fabrice