Gymnasium Löbau/Vertiefungsklasse 2013/Turtlegrafik (II)

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Die Turtle trifft Entscheidungen ==

Wir wollen ein beliebiges N-Eck ''mehrfarbig'' zeichnen.

<code id="59195a5dd3375">
function n_eck(turtle, x, n) {
 for (var i = 1; i <= n; i++) {
  if (i % 2 == 0)
   turtle.penColor(255, 0, 0);
  else
   turtle.penColor(0, 0, 255);
  turtle.forward(x);
  turtle.right(360 / n);
 }
}
</code>
<canvas w="400" h="300"></canvas>
<run id="59195a5dd35ee">
canvas1.clear();
turtle1.move(100, 200);
n_eck(turtle1, 70, 10);
</run>

Syntax der neuen Sprachelemente:
<ul>
<li>''Zweiseitige'' Verzweigungen:
<pre>
if <Bedingung> {
 //Falls-Anweisung(en)
}
else {
 //Sonst-Anweisung(en)
} 
</pre>
</li>
<li>
Verzweigungen können auch ''einseitig'' sein, d.h. folgende Syntax haben:
<pre>
if <Bedingung> {
 //Falls-Anweisung(en)
}
</pre>
</li>
<li>
Mit der Standardfunktion <tt>Math.floor</tt> kann der ganzzahlige Anteil der Variablen <tt>zahl</tt> ermittelt werden:
<pre>ganz = Math.floor(zahl);</pre>
</li>  
<li>
Die Anweisung
<pre>rest = zahl % n;</pre>
gibt den Rest der ganzzahligen Division der Variablen <tt>zahl</tt> und <tt>n</tt> an.
</li>  
<li>
=== Ein Beispiel aus der Mathematik ===

<code id="59195a5dd348b">
function GeradTest(n) {
 if (n % 2 == 0)
  return n + " ist eine gerade Zahl.";
 else
  return n + " ist eine ungerade Zahl.";
}
</code>

<run id="59195a5dd3669">
GeradTest(27);
</run>
</li>
</ul>

== Vom Pentagramm zum "N-Spitz" ==

Experimentiere mit der folgenden Prozedur. Variiere dazu die Parameter und verändere die Farbwerte.

<code id="59213fe1e4763">
function n_spitz(turtle, x, n) {
 var winkel;
 if (n % 2 == 0) 
  winkel = 180 - 360 / n;
 else
  winkel = 180 - 180 / n;
 for (var i = 1; i <= n; i++) {
  turtle.penColor(i * 250 / n + 50, 0, 250 - 250 / n * i);  
  turtle.forward(x);  
  turtle.right(winkel); 
 }
}
</code>
<canvas w="400" h="300"></canvas>
<run id="59213fe1e47f1">
canvas2.clear();
turtle2.move(200, 250);
n_spitz(turtle2, 200, 35);
</run>

Kannst Du ''allgemein'' beschreiben, welche "N-Spitze" ''nicht'' exakt gezeichnet werden?
<!-- Keine exakte Darstellung für alle N, die den Primfaktor 2 nur einmal enthalten -->

== Aufgaben ==

Die Prozeduren zu den nachfolgenden Aufgaben können entweder unter dem eigenen Benutzernamen oder auf der unten verlinkten Lösungsseite implementiert werden. 

<ol>
<li>
=== Strich- und Zickzacklinie ===
Schreibe je eine Prozedur zur Darstellung einer Strich- bzw. Zickzacklinie. Diese Linienarten sollen zunächst wie in der Abbildung einfarbig sein.
[[Datei:Farbrosette1.gif|miniatur|Farbrosette mit Quadraten]]
<blockquote>[[Bild:Linien1.GIF]]</blockquote>
Gestalte nun die Linienarten mit wechselnden Farben.
</li>
<li>
=== Mehrfarbige Rosetten ===
Entwickle eine Prozedur, mit der Rosetten in wechselnden Farben gezeichnet werden können.<br />
Diese Rosetten sollen wie in [[Gymnasium Löbau/Vertiefungsklasse 2013/Turtlegrafik (I)|Turtlegrafik (I)]] aus gedrehten regelmäßigen N-Ecken gebildet werden.
</li> 
</ol>

Zu den [[Gymnasium Löbau/Vertiefungsklasse 2013/Turtlegrafik-Lösungen (II)|Lösungen der Aufgaben]].