Namespaces
Variants
Actions

Difference between revisions of "User:EddieBates/Asymptote-testing"

From Encyclopedia of Mathematics
Jump to: navigation, search
 
Line 1: Line 1:
 
<asy>
 
<asy>
size(10cm);
+
size(12cm,0);
  
path g=box((-1,-1),(1,1));
+
import geometry;
pen [] col= new pen[]{gray,yellow};
 
real k=sqrt(10)/4;
 
transform T=scale(k)*rotate(degrees(acos(17/(16*k*sqrt(2)))));
 
int nb=10;
 
  
for (int i=0; i<nb; ++i) filldraw(T^i*g,col[i%2]);
+
triangle T=triangleAbc(90,Tan(30),1);
 +
 
 +
triangle[] reverse(triangle[] arr)
 +
{
 +
  triangle[] or;
 +
  int l=arr.length;
 +
  for(int i=0; i < l; ++i) {
 +
    or.push(arr[l-i-1]);
 +
  }
 +
  return or;
 +
}
 +
 
 +
triangle[] dissect(triangle T, int n, bool reverse=false)
 +
{
 +
  if(n <= 0) return new triangle[]{T};
 +
  triangle[] OT;
 +
 
 +
  point M=curpoint(T.AB,T.b()*Tan(30));
 +
  point H=projection(T.BC)*M;
 +
  triangle[] OT1, OT2, OT3;
 +
  OT.append(dissect(triangle(H,T.B,M),n-1,!reverse));
 +
  OT.append(reverse((dissect(triangle(H,T.C,M),n-1,!reverse))));
 +
  OT.append(dissect(triangle(T.A,T.C,M),n-1,!reverse));
 +
  return OT;
 +
}
 +
 
 +
triangle[] DT=dissect(T,5);
 +
point O=centroid(DT[0]);
 +
path g;
 +
transform Ro=rotate(30,T.B), Re=reflect(T.BC), Roj;
 +
 
 +
for(int i : DT.keys) {
 +
  O=incenter(DT[i]);
 +
  g=g--O;
 +
}
 +
 
 +
g=reverse(g);
 +
path G, g=g--Re*reverse(g) ;
 +
for (int j=0; j < 12; j += 2) G=G--Ro^(-j)*g;
 +
 
 +
fill(G--cycle,0.3*blue);
 +
 
 +
for(int i : DT.keys) {
 +
  for (int j=0; j < 12; j += 2) {
 +
    Roj=Ro^j;
 +
    draw(Roj*DT[i],miterjoin+0.8*red);
 +
    draw(Roj*(Re*DT[i]),miterjoin+0.8*red);
 +
  }
 +
}
 +
 
 +
draw(G--cycle,bp+miterjoin+0.9*yellow);
 +
 
 +
shipout(bbox(2mm, FillDraw(black, 1mm+miterjoin+deepblue)));
 
</asy>
 
</asy>
  

Latest revision as of 15:33, 22 October 2014


How to Cite This Entry:
EddieBates/Asymptote-testing. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=EddieBates/Asymptote-testing&oldid=33991