Benutzer:Chriseibt
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
== Lösungen zu den Aufgaben ==
<ol>
<li>
=== Strich- und Zickzacklinie ===
<code id="537383a3e321f">
public void strichlinie(Object turtle, double x, int n) {
}
</code>
<canvas w="600" h="200"></canvas>
<run id="537383a3e3338">
canvas1.clear();
turtle1.move(50, 100);
strichlinie(turtle1, 50, 10);
</run>
<code id="537383a3e32a9">
public void zickzacklinie(Object turtle, double x, int n) {
}
</code>
<canvas w="600" h="200"></canvas>
<run id="537383a3e33ae">
canvas2.clear();
turtle2.move(50, 100);
zickzacklinie(turtle2, 50, 10);
</run>
</li>
<li>
=== Mehrfarbige Rosetten ===
<code id="537bc33cd09fd">
public void n_eck(Object turtle, double x, int n) {
double winkel = (double) 360 / n;
for (int i = 1; i <= n; i++) {
turtle.forward(x);
turtle.right(winkel);
}
}
public void farbrosette1(Object turtle, double x, int m, int n) {
double winkel = (double) 360 / m;
int farbanzahl = 6;
int z;
for (int i = 1; i <= m; i++) {
z = i * farbanzahl / (m + 1);
//Anweisungen zum farbigen Zeichnen der Rosette
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="537bc33cd0b76">
canvas3.clear();
turtle3.move(200, 150);
farbrosette1(turtle3, 50, 20, 5);
</run>
=== Mehrfarbige Rosetten mit benutzerdefinierten Farben ===
Natürlich besteht der Wunsch, den Farbwechsel zwischen ''benutzerdefinierten'' Farben vorzunehmen. Dazu müssen diese gesondert angegeben und ausgewählt werden:
<code id="537bc33cd0ac0">
public void farbrosette2(Object turtle, double x, int m, int n) {
double winkel = (double) 360 / m;
int farbanzahl = 6;
int z;
for (int i = 1; i <= m; i++) {
z = i * farbanzahl / (m + 1);
if (z == 0) turtle.penColor(255, 0, 0);
else if (z == 1) turtle.penColor(255, 100, 0);
//Setzen weiterer benutzerdefinierten Farbe;
else turtle.penColor(200, 50, 200);
n_eck(turtle, x, n);
turtle.right(winkel);
}
}
</code>
<canvas w="400" h="300"></canvas>
<run id="537bc33cd0c4e">
canvas4.clear();
turtle4.move(200, 150);
farbrosette2(turtle4, 50, 20, 5);
</run>
</li>
</ol>