Gymnasium Löbau/Vertiefungsklasse 2010/Turtlegrafik (II)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
== Die Turtle trifft Entscheidungen ==
Wir wollen ein beliebiges N-Eck ''mehrfarbig'' zeichnen.
<code id="53957e0cb43dc">
public void n_eck(Object turtle, double x, int n) {
for (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((double) 360 / n);
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="5372a0236035e">
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>
Die Anweisung
<pre>int rest = zahl % n;</pre>
gibt den Rest der ganzzahligen Division der Variablen <tt>zahl</tt> durch die Variable <tt>n</tt> an.
</li>
</ul>
== Vom Pentagramm zum "N-Spitz" ==
Experimentiere mit der folgenden Prozedur. Variiere dazu die Parameter und verändere die Farbwerte.
<code id="5376388d1acbc">
public void n_spitz(Object turtle, double x, int n) {
double winkel;
if (n % 2 == 0)
winkel = 180 - (double) 360 / n;
else
winkel = 180 - (double) 180 / n;
for (int i = 1; i <= n; i++) {
turtle.penColor(i * 10 + 50, 0, 250 - 10 * i);
turtle.forward(x);
turtle.right(winkel);
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="5372a73267b61">
canvas2.clear();
turtle2.move(200, 250);
n_spitz(turtle2, 200, 15);
</run>
== 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 2010/Turtlegrafik (I)|Turtlegrafik (I)]] aus gedrehten regelmäßigen N-Ecken gebildet werden.
</li>
</ol>
Zu den [[Gymnasium Löbau/Vertiefungsklasse 2010/Turtlegrafik-Lösungen (II)|Lösungen der Aufgaben]].