<style type="text/css"> 
b.green{color:DarkGreen;}
b.red  {color:#880000;}
b.code {background:#f9edd4;}
p.code {background:#f9edd4;}
body   {background:#e2fbe4;}
</style><body><pre>
<h3>Kurs: 07 Abbildungen</h3>
Die drawMatrix.

Script 1: Objekte definieren. 
Script 2: Drehungen.
Script 3: Spiegelungen.
Script 4: Ganz wilde Sachen.

<u>Erklärungen zum Script 1</u>

  <i>Objekte für die folgenden Abbildungen definieren.</i>

<p class="code"><code>
ScriptBegin
var Grafik="Script Turtle";

function init()
{ 
  // Dreieck definieren
  t.goTo(30,20); t.turnTo(75);
  t.trianglePolygon(45,120,23);
  t.setPen("darkred", 1.5); t.setBrush("gold");
  t.defDraw("Dreieck");

  // Punkte definieren
  t.setPen("red", 0.6);
  t.goTo(-10,40); t.defPoint("X");
  t.goTo(40,-70); t.defPoint("Y");

  // Seite einrichten
  t.setBrush("LightBlue"); t.setPen("black",0);
  t.setPage();
} 

function draw()
{ t.drawKoordSystem(); t.drawRaster(); t.msgDraw();
 
  t.goTo(0,0);
  t.draw("Dreieck"); t.draw("X"); t.draw("Y");
  
  t.setPen("black", 0);
  t.goTo("X"); t.moveTo("Y");
}
ScriptEnd#1 </code></p>
__________________________________________

Script 2: Drehungen.

<u>Erklärungen zum Script</u>

* <b class="code">t.setRotate("P", Winkel, reset=true);</b>
  <i>Drehung um "P" mit Winkel in Grad.
  <b class="red">true :</b> reset drawMatrix (Einheitsmatrix). 
  <b class="red">false:</b> auf bestehende drawMatrix anwenden.
  
  Bei draw() danach eine Schiebung auf
  (lastX(), lastY()) und eine Drehung mit lastW().</i>
 

<p class="code"><code>ScriptBegin  //Script 2
var Grafik="Script Turtle";

function init() //Initialisierungen
{ t.setBrush("LightBlue");
  t.setPage();
  t.clrMsg(); t.msgDraw();
} 

function draw() //Zeichenbefehle
{ t.drawKoordSystem(); t.drawRaster();
   
  t.goTo(0,0); t.turnTo(0);
  t.draw("Dreieck"); t.draw("X"); t.draw("Y");

  // Dreieck gedreht zeichnen
  t.setRotate("X",-45);         // reset und drehen
  t.draw("Dreieck");
  t.setRotate("X",-45,false);   // weiterdrehen
  t.draw("Dreieck");

 // drawMatrix + Verschiebung auf (lastX(),lastY())
  t.goTo(0,-25);  t.draw("Dreieck");

  // drawMatrix + Verschiebung auf (lastX(),lastY())
  // + Drehung mit lastW() um gedrehten Punkt(0,0).
  // Wird langsam unübesichtlich :-)!
  // Muss ja nicht verwendet werden.
  t.goTo(0,-50); t.turnTo(10); t.draw("Dreieck");
}
ScriptEnd#2</code></p>
__________________________________________

Script 3: Spiegelungen.


<u>Erklärungen zum Script</u>

* <b class="code">t.setMirror("P1", "P2", reset=true);</b>
  <i>Spiegelung an Gerade "P1" "P2".
  <b class="red">true :</b> reset drawMatrix (Einheitsmatrix). 
  <b class="red">false:</b> auf bestehende drawMatrix anwenden.
  
  Bei draw() danach eine Schiebung auf
 (lastX(), lastY()) und eine Drehung mit lastW().</i>

<p class="code"><code>ScriptBegin //Script 3
var Grafik="Script Turtle";

function init() //Initialisierungen
{ t.setBrush("LightBlue");
  t.setPage();
  t.clrMsg(); t.msgDraw();
} 

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

  t.goTo(0,0); t.turnTo(0);
  t.draw("Dreieck"); t.draw("X"); t.draw("Y");

  // Dreieck gedreht zeichnen
  t.setMirror("X","Y");         // reset und spiegeln
  t.draw("Dreieck");
  t.setMirror("X","Y",false);   // weiterspiegeln
  t.draw("Dreieck");

 // drawMatrix + Verschiebung auf (lastX(),lastY())
  t.goTo(20,0);  t.draw("Dreieck");
}
ScriptEnd#3</code></p>
__________________________________________


Script 4: Ganz wilde Sachen.

<u>Erklärungen zum Script</u>

* <b class="code">t.setRotate(w, reset=true);</b>         <i>Drehung w Grad.</i>
* <b class="code">t.setScale(sx, sy, reset=true );</b>    <i>Skalierung.</i>
* <b class="code">t.setShear(sh, sv, reset=true );</b>    <i>Scherung.</i>
* <b class="code">t.setTranslate(dx, dy, reset=true);</b> <i>Translation.</i>
* <b class="code">t.setIdentity();</b>          <i>Einheitsmatrix (reset).</i>   

  reset:<b class="red">true :</b> reset drawMatrix (Einheitsmatrix). 
  reset:<b class="red">false:</b> auf bestehende drawMatrix anwenden.


<p class="code"><code>ScriptBegin //Script 3
var Grafik="Script Turtle";

function init() //Initialisierungen
{ t.setBrush("LightBlue");
  t.setPage();
  t.clrMsg(); t.msgDraw();
} 

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

  // Dreieck, Spiegelungsachse 
  t.goTo(0,0); t.turnTo(0);
  t.draw("Dreieck"); t.draw("X"); t.draw("Y");
  t.goTo("X"); t.moveTo("Y");
  
//return;  
  t.goTo(0,0);
  t.setTranslate(20,-80);      // Schiebung
  t.draw("Dreieck");

//return;
  t.setMirror("X","Y",false);  // weiter mit Spiegelung 
  t.draw("Dreieck");

//return;
  t.setRotate("X",-80,false);  // weiter mit Drehung
  t.draw("Dreieck");

//return;
  t.setScale(0.6, 0.6,false);  // weiter mit Skalierung
  t.draw("Dreieck");

//return;
  t.setScale(0.6, 0.6,false);  // weiter mit Skalierung
  t.draw("Dreieck");

//return;
  t.setMirror("X","Y",false);  // weiter mit Spiegelung 
  t.draw("Dreieck");

//return; 
 // drawMatrix + Verschiebung auf (lastX(),lastY())
  t.goTo(0,-20);  t.draw("Dreieck");}
ScriptEnd#4</code></p>