import java.awt.Color; public class Sierpin{ static int width = 600; static int height = 600; static int h; static int x; static int y; static DrawingTool dt; static void caraVlevo() { dt.line(x,y,x-2*h,y); x = x - 2*h; } static void caraVpravo() { dt.line(x+2*h,y,x,y); x = x + 2*h; } static void caraNahoru() { dt.line(x,y-2*h,x,y); y = y - 2*h; } static void caraDolu() { dt.line(x,y,x,y+2*h); y = y + 2*h; } static void caraNahoruVlevo() { dt.line(x-h,y-h,x,y); x = x - h; y = y - h; } static void caraNahoruVpravo() { dt.line(x,y,x+h,y-h); x = x + h; y = y - h; } static void caraDoluVlevo() { dt.line(x,y,x-h,y+h); x = x - h; y = y + h; } static void caraDoluVpravo() { dt.line(x,y,x+h,y+h); x = x + h; y = y + h; } static void A(int i) { if (i==0) return; if (i==1) dt.stopUpdate(); A(i-1); caraDoluVpravo(); B(i-1); caraVpravo(); D(i-1); caraNahoruVpravo(); A(i-1); if (i==1) dt.startUpdate(); } static void B(int i) { if (i==0) return; if (i==1) dt.stopUpdate(); B(i-1); caraDoluVlevo(); C(i-1); caraDolu(); A(i-1); caraDoluVpravo(); B(i-1); if (i==1) dt.startUpdate(); } static void C(int i) { if (i==0) return; if (i==1) dt.stopUpdate(); C(i-1); caraNahoruVlevo(); D(i-1); caraVlevo(); B(i-1); caraDoluVlevo(); C(i-1); if (i==1) dt.startUpdate(); } static void D(int i) { if (i==0) return; if (i==1) dt.stopUpdate(); D(i-1); caraNahoruVpravo(); A(i-1); caraNahoru(); C(i-1); caraNahoruVlevo(); D(i-1); if (i==1) dt.startUpdate(); } public static void main(String[] args) { dt = new DrawingTool(width, height); h = 130; x = 2*h; for(int i=1;i<=7;i++){ h=h/2; x = 2*h; y = h; dt.clear(); A(i); caraDoluVpravo(); B(i); caraDoluVlevo(); C(i); caraNahoruVlevo(); D(i); caraNahoruVpravo(); } } }