Chaweiss/Turtelgrafik II
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
===Strichellinie===
<code id="537e0a635410e">
public void strichellinie(Object turtle, double x, int n) {
turtle1.right(90);
for (int i = 1; i <=n; i++) {
turtle1.forward(x);
turtle1.penUp();
turtle1.forward(x);
turtle1.penDown();
}
}
</code>
<canvas width="500" height="200"></canvas>
<run id="537e0a6354231">
canvas1.clear();
turtle1.move(50, 100);
strichellinie(turtle1, 50, 10);
</run>
===Binärbaum===
<code id="537f1e3aade52">
public void baum(Object turtle, double x, int n) {
if (n > 0) {
turtle2.forward(x);
turtle2.left(60);
baum(turtle, 2 * x / 3, n - 1);
turtle2.right(80);
baum(turtle, 2 * x / 3, n - 1);
turtle2.left(20);
turtle2.backward(x);
}
}
</code>
<canvas width="500" height="400"></canvas>
<run id="537f1e3aadedd">
canvas2.clear();
turtle2.move(190, 280);
baum(turtle2, 100, 12);
</run>
===Quadratschnecke===
<code id="537f1fb4caa7e">
public void quadschnecke(Object turtle, double x) {
if (x > 0) {
turtle.forward(x);
turtle.right(90);
quadschnecke(turtle, x - 2);
}
}
</code>
<canvas width="500" height="400"></canvas>
<run id="537f1fb4cab19">
canvas3.clear();
turtle3.move(190,280);
quadschnecke(turtle3, 200);
</run>
===Vom rotierenden Quadrat zur Spiralgalaxie===
<code id="53918dfda01d8">
public void quadrat(Object turtle4, double x) {
for (int i = 1; i <= 4; i++) {
turtle4.forward(x);
turtle4.right(90);
}
}
public void spiralarm(Object turtle4, double x, double dx, double winkel) {
if (x > dx){
quadrat(turtle4, x);
turtle4.right(winkel);
spiralarm(turtle4, x-dx, dx, winkel);
}
}
</code>
<canvas width="500" height="400"></canvas>
<run id="53918f18e3cfb">
canvas4.clear();
turtle4.move(200, 150);
turtle4.penColor(255, 125, 125);
spiralarm(turtle4, 120, 2, 6);
</run>
<code id="5391946090061">
public void galaxie(Object turtle5, double x, int m, int n) {
double winkel_m = (double) 360 / m;
double winkel_n = (double) 360 / n;
double dx = x / n;
for(int i = 1; i <=m; i++) {
spiralarm(turtle5, x, dx, winkel_n);
turtle5.right(winkel_m);
}
}
</code>
<canvas width="500" height="400"></canvas>
<run id="5391946090113">
canvas5.clear();
turtle5.move(200, 150);
turtle5.penColor(255, 125, 125);
galaxie(turtle5, 100, 5, 30);
</run>