Asymptote(3) : フラクタル(3) Six Carpet

Six Carpet

settings.outformat="pdf";
unitsize(10cm);
pair p1=(0, -1), p2 = (0.8660254037844, -0.5), p3 =(0.8660254037844, 0.5), p4 = (0, 1), p5 = (-0.8660254037844, 0.5), p6 = (-0.8660254037844, -0.5) ;
path a = p1 -- p2 -- p3 -- p4 -- p5 -- p6 --cycle;
draw(a, dashed);
/* draw(rotate(60)*a, purple);*/ /*Rotate 60degrees*/
/* pair q_1 = (-0.321358865654623, -0.36561928865444946);*/

path b= scale(0.25)*a;
/* draw(b,red +dashed); */

pair q1 = scale(0.75) * p1;
draw(q1);
path b1= shift(q1)*b;

pair q2 = scale(0.75) * p2;
draw(q2);
path b2= shift(q2)*b;

pair q3 = scale(0.75) * p3;
draw(q3);
path b3= shift(q3)*b;


pair q4 = scale(0.75) * p4;
draw(q4);
path b4= shift(q4)*b;

pair q5 = scale(0.75) * p5;
draw(q5);
path b5= shift(q5)*b;

pair q6 = scale(0.75) * p6;
draw(q6);
path b6= shift(q6)*b;

pair d1 = (-0.21650635094,-0.375);
draw(d1);
path e1= shift(d1)*b;

pair d2 = (0.21650635094,-0.375);
draw(d2);
path e2= shift(d2)*b;

pair d3 = (0.4330127018922,0);
draw(d3);
path e3= shift(d3)*b;

pair d4 = (0.21650635094,0.375);
draw(d4);
path e4= shift(d4)*b;

pair d5 = (-0.21650635094,0.375);
draw(d5);
path e5= shift(d5)*b;


pair d6 = (-0.4330127018922,0);
draw(d6);
path e6= shift(d6)*b;

path[] pre;
pre = new path[12];

path[] intersect= {b1, b2, b3, b4, b5,b6, e1, e2,e3, e4, e5, e6};
pair[] fixedpoint = {p1, p2, p3, p4, p5,p6};
pair[] col = {q1, q2, q3, q4, q5,q6, d1, d2, d3, d4, d5,d6};

for(int j=0; j<12; ++j) {
pre[j]= scale(0.25)* intersect[j];

}
/* draw(pre[j],red+dashed); */

path[][] contra;
contra = new path[12][12];

for(int j=0; j<12; ++j) {
for(int i=0; i<12; ++i) {
contra[i][j]= shift(col[i])* pre[j];

}
}
/* draw(contra[i][j],dashed);fill(contra[i][j]); */

pen[] color = {paleblue, palegreen, paleyellow, palecyan,palered, palemagenta};
color.cyclic=true;


path[][][] contra_contra;
contra_contra = new path[12][12][12];

for(int k=0; k<12; ++k) {
for(int j=0; j<12; ++j) {
for(int i=0; i<12; ++i) {
contra_contra[i][j][k] = shift(col[i])*scale(0.25)*contra[j][k] ;
draw(contra_contra[i][j][k]);
}
}
}
/*draw(contra_contra[3][3][0],red); draw(contra_contra[i][j][k]); fill(contra_contra[i][j][k], color[j]);*/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です