<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: 08 Set Polygon</h3>
Polygon mit drawMatrix bearbeiten.

Script 1: addPolygon verwenden. 
Script 2: Muster mit setPolygon.

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

* <b class="code">t.addPolygon("Name", mode=0);</b>
  <i>Turtle-Polygon erweitern.
  Das erste Polygon von "Name" mit drawMatrix abbilden
  und zum Endpunkt des Turtle-Polygons verschieben.
  <b class="red">mode= 0:</b> "Name" in gegebener Reihenfolge anhängen. 
  <b class="red">mode=-1:</b> "Name" in umgekehrter Reihenfolge anhängen.</i>

* <b class="code">t.setPolygon(Start=0, Anzahl=-1);</b>
  <i>Turtle-Polygon ersetzen. 
  Zuerst die drawMatrix auf alle Punkte anwenden.
  <b class="red">Start= 0, Anzahl=-1:</b> Alle Punkte verwenden. 
  <b class="red">Start=-1, Anzahl=-1:</b> Punkte in umgekehrter Reihenfolge.
  <b class="red">Start>=0, Anzahl>=0:</b> Anzahl Punkte ab Start verwenden.
                       Der erste Punkt hat den Index 0.  
  <b class="red">Start&lt;-1, Anzahl>=0:</b> Anzahl Punkte ab Start in umgekehrter Reihenfolge verwenden.
                       Der letzte Punkt hat den Index -1.</i>

<p class="code"><code>ScriptBegin
var Grafik = "Script Funktionen"

var dt=0.5              // Increment
var min=0               // Startwert für t
var max=2.5*6*Math.PI;  // Endwert für t
var w=85;
var v=10;

function sin(x) { return v*Math.sin(x/6);}


function init()
{ t.setBrush("LightBlue");
  t.setPage();       
}

function draw()
{ t.drawKoordSystem(); t.drawRaster(); t.setPen("red"); 
  
  t.beginPolygon(); t.drawGraf("sin"); t.endPolygon(3);  
  t.defDraw("Welle");

  t.setRotate(w);     t.addPolygon("Welle");
  t.setIdentity();    t.addPolygon("Welle",-1);
  t.setRotate(180+w); t.addPolygon("Welle");

  t.goTo(0,0);t.drawPolygon();

  t.endPolygon();
 
  // verkleinern
  t.setScale(0.8, 0.8); t.setPolygon();

  // speichern
  t.setPen("red",0.6); t.setBrush("#a4a456"); 
  t.defDraw("Stein");
    
  t.goTo(0,-20);t.draw("Stein");
}  
ScriptEnd#1</code></p>
__________________________________________

Script 2: Muster mit setPolygon.

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

* <b class="code">t.setPolygon("Name", mode=0);</b>
  <i>Turtle-Polygon aus dem ersten Polygon von "Name" erzeugen.
  Zuerst "Name" mit drawMatrix abbilden.
  <b class="red">mode=  0:</b> "Name" als Turtle-Polygon speichern. 
  <b class="red">mode= -1:</b> "Name" in umgekehrter Reihenfolge speichern.
  <b class="red">mode=  1:</b> Turtle-Polygon Duchschnitt "Name".  
  <b class="red">mode=  2:</b> Turtle-Polygon Vereinigung "Name".
  <b class="red">mode=  3:</b> Turtle-Polygon ohne "Name".</i>

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

function init()
{ t.setBrush("LightBlue"); t.setPen("black",0);
  t.setPage();
  t.clrMsg();
} 

function draw()
{ t.drawKoordSystem(); t.drawRaster(); t.msgDraw();

  dw=360/8; a=55; wa=15;
  
  t.goTo(0,0); t.turnTo(0);
  t.rectPolygon(a,2*a,0);
  t.defDraw("Klipprechteck"); t.draw("Klipprechteck");

  // Dreieck definieren
  t.turnTo(90-dw/2);
  t.trianglePolygon(a,wa,a,3);

  t.setPolygon("Klipprechteck",1);
  t.turnTo(0);  t.setPen("red", 1); t.drawPolygon();

  t.msgPolygon();
  t.setPolygon(1,2); // Punkt 1 und 2 holen 
  t.msgPolygon();  

  t.setPen("blue", 1);
  t.defDraw("Line0");
  
  t.setScale(-1,1);
  t.addPolygon("Line0",-1);
  t.defDraw("Line1");
  t.goTo(0,0); t.turnTo(0);t.drawPolygon();

  for (i=0; i&lt;7; i++) 
  { t.setRotate("O",dw,false);
    t.addPolygon("Line1",-1);  
  }

  t.endPolygon();  
  t.setBrush("green");
  t.defDraw("Figur");
  t.goTo(-85,40); t.draw("Figur");

  t.beginPolygon();
  t.setRotate("O",dw/2); t.setScale(0.5,0.5, false);
  t.setPolygon("Figur");
  t.endPolygon();   

  t.setBrush("red"); t.goTo(-40,-40); t.drawPolygon();
  
  t.defDraw("Figur",1);
  t.setIdentity();
  t.goTo(60,-40); t.draw("Figur");
  
  t.msgDraw();
}
ScriptEnd#2</code></p>

__________________________________________


