import java.applet.Applet;
import java.awt.Graphics;
class MainApp
extends Applet { double xp1=300;
double yp1=300;
double xp2=10;
double yp2=300;
double sin60
=Math.
sin(3.14/3.
); int nivel_de_recursividad=6;
public MainApp() { }
public static void main
(String[] args
) { }
paintRecursivo(g,nivel_de_recursividad,xp1,yp1,xp2,yp2);
}
private void paintRecursivo
(Graphics g,
int i,
double xp12,
double yp12,
double xp22,
double yp22
) { double dx=(xp22-xp12)/3.;
double dy=(yp22-yp12)/3.;
double xx=xp12+3*dx/2.-dy*sin60;
double yy=yp12+3*dy/2.+dx*sin60;
if(i<=0){
g.drawLine((int)xp12,(int)yp12,(int)xp22,(int)yp22);
}
else{
paintRecursivo(g,i-1,xp12,yp12,xp12+dx,yp12+dy);
paintRecursivo(g,i-1,xp12+dx,yp12+dy,xx,yy);
paintRecursivo(g,i-1,xx,yy,xp22-dx,yp22-dy);
paintRecursivo(g,i-1,xp22-dx,yp22-dy,xp22,yp22);
}
} }
aW1wb3J0IGphdmEuYXBwbGV0LkFwcGxldDsKaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOwpjbGFzcyBNYWluQXBwIGV4dGVuZHMgQXBwbGV0IHsKIGRvdWJsZSB4cDE9MzAwOwogZG91YmxlIHlwMT0zMDA7CiBkb3VibGUgeHAyPTEwOwogZG91YmxlIHlwMj0zMDA7CiBkb3VibGUgc2luNjA9TWF0aC5zaW4oMy4xNC8zLik7CiBpbnQgbml2ZWxfZGVfcmVjdXJzaXZpZGFkPTY7CgogcHVibGljIE1haW5BcHAoKSB7IH0KCiBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7IH0KCiBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKXsKICAgcGFpbnRSZWN1cnNpdm8oZyxuaXZlbF9kZV9yZWN1cnNpdmlkYWQseHAxLHlwMSx4cDIseXAyKTsKIH0KCiBwcml2YXRlIHZvaWQgcGFpbnRSZWN1cnNpdm8oR3JhcGhpY3MgZywgaW50IGksIGRvdWJsZSB4cDEyLCBkb3VibGUgeXAxMiwgZG91YmxlIHhwMjIsIGRvdWJsZSB5cDIyICkgewogZG91YmxlIGR4PSh4cDIyLXhwMTIpLzMuOwogZG91YmxlIGR5PSh5cDIyLXlwMTIpLzMuOwogZG91YmxlIHh4PXhwMTIrMypkeC8yLi1keSpzaW42MDsKIGRvdWJsZSB5eT15cDEyKzMqZHkvMi4rZHgqc2luNjA7CiBpZihpPD0wKXsKICAgICAgZy5kcmF3TGluZSgoaW50KXhwMTIsKGludCl5cDEyLChpbnQpeHAyMiwoaW50KXlwMjIpOwogfQogZWxzZXsKICAgICBwYWludFJlY3Vyc2l2byhnLGktMSx4cDEyLHlwMTIseHAxMitkeCx5cDEyK2R5KTsKICAgICBwYWludFJlY3Vyc2l2byhnLGktMSx4cDEyK2R4LHlwMTIrZHkseHgseXkpOwogICAgIHBhaW50UmVjdXJzaXZvKGcsaS0xLHh4LHl5LHhwMjItZHgseXAyMi1keSk7CiAgICAgcGFpbnRSZWN1cnNpdm8oZyxpLTEseHAyMi1keCx5cDIyLWR5LHhwMjIseXAyMik7CiB9Cn0gfQo=