ScriptBegin
var Grafik="Script Escher";

var a=12;
    r=100;
    PenC ="black";    
    Fill ="black";
    Fill1 ="crimson";
    Fill2 ="yellow";

    maxi = 30;
    maxj = 30;
    epsilon=0.002;

function init() //Initialisierungen
{ t.setBrush(Fill2);
  t.setPage();
  t.setAntiAliasing();
} 

function draw() //Zeichenbefehle
{ t.drawKoordSystem();
  //t.drawRaster();

  
  defBasis();
  t.goTo(0,0); t.turnTo(0); 
//  t.setRotate(80);  

 // t.draw("Kreis");
 // t.morphDraw("Kreis");
//return;  
  for(i=-maxi; i<=maxi; i++)
  { for(j=-maxj; j<=maxj; j++)
    { t.goTo(i*a,j*a+30);
      n=(i*i+j*j)%2;
      t.morphDraw("Quadrat"+n);
    }
  }
}


function defBasis()
{ t.setNoStyle();
  t.goTo(-a/2,-a/2)
  t.rectPolygon(a,a)
  t.setPen(PenC); t.setBrush(Fill); 
  t.defDraw("Quadrat0");
  t.refineDraw("Quadrat0");
  t.setBrush(Fill1); 
  t.defDraw("Quadrat1");
  t.refineDraw("Quadrat1");

  //t.setNoStyle();
  t.goTo(0,0);
  t.isoPolygon(r,-1,2);
  t.setPen(PenC); 
  t.defDraw("Kreis");
}

var u=19;
function g(x)
{x/=u;
return x*x*x;
 return Math.abs(x*x*x);  
}

var fa=0.98;
function f(x)
{ return x*(fa*Math.exp(-((x-30)*(x-30))/1200)+1);
}


function morphX(x,y)
{// return x;
 //x-=50; y=-50;
 d=Math.sqrt(x*x+y*y); 
 if (d<epsilon) return x+y;
 return f(d)*x/d
}

function morphY(x,y)
{// return y;
 //x-=50; y-=50;
 d=Math.sqrt(x*x+y*y); 
 if (d<epsilon) return x+y;
 return f(d)*y/d
}

ScriptEnd

________________________________________________


ScriptBegin
var Grafik="Script Funktionen";


var u=0.00011;
function g(x)
{return x*x*x*u;  
}

var a=1.8;
function f(x)
{// return 5+ 105 * Math.exp(-x*x /2000);

 return 0.5*x*(a*Math.exp(-((x-30)*(x-30))/1002)+1);

}




function h(x)
{if (x<0) return Math.sqrt(-x*u);  
 return Math.sqrt(x*u);  
}

function init() //Initialisierungen
{ t.setPage(2); } 

function draw() //Zeichenbefehle
{ t.drawKoordSystem();
  t.drawRaster();
  t.drawGraf("g");
  t.setPen("red");
  t.drawGraf("f");
}
ScriptEnd


