Katwislicenus/Turtlegrafik2
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
===Strichellinie bunt===
<code id="5375e90df2944">
public void strichellinie(Object turtle, double x, int n) {
turtle.right(90);
for (int i = 1; i <= n; i++) {
if (i % 2 == 0)
turtle.penColor(255, 0, 0);
else
turtle.penColor(0, 0, 255);
turtle.forward(x);
turtle.penUp();
turtle.forward(x);
turtle.penDown();
}
}
</code>
<canvas <width="300" height="400">
</canvas>
<run id="5375e90df2a26">
canvas1.clear();
turtle1.move(175,250);
strichellinie(turtle1, 20, 4);
</run>
===Zickzacklinie bunt===
<code id="537e5034c978b">
public void zickzacklinie(Object turtle, double x, int n) {
turtle.right(45);
for (int 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(90);
turtle.forward(x);
turtle.right(270);
}
}
</code>
<canvas <width="300" height="400">
</canvas>
<run id="537e5034c983a">
canvas2.clear();
turtle2.move(175,250);
zickzacklinie(turtle2, 50, 10);
</run>
===Rosette===
<code id="537f1b0639414">
public void n_eck(Object turtle, double x, int n) {
double winkel = 360 / n;
for (int i = 1; i <= n; i++) {
turtle.forward(x);
turtle.right(winkel);
}
}
public void rosette(Object turtle, double x, int m, int n) {
double winkel = 360 / m;
turtle.penColor(255, 125, 125);
for (int i = 1; i <= m; i++) {
n_eck(turtle, x, n);
turtle.right(winkel);
}
}
</code>
<canvas <width="300" height="400">
</canvas>
<run id="537e5034c983a">
canvas3.clear();
turtle3.move(175,250);
rosette(turtle3, 50, 20, 5);
</run>
===Spiralarme und -galaxien===
<code id="53919560147d2">
public void quadrat(Object turtle, double x) {
for (int i = 1; i <= 4; i++) {
turtle.forward(x);
turtle.right(90);
}
}
public void spiralarm(Object turtle, double x, double dx, double winkel) {
if (x>dx){
quadrat(turtle,x);
turtle.right(winkel);
spiralarm(turtle,x-dx,dx,winkel);
}
}
</code>
<canvas <width="300" height="400">
</canvas>
<run id="539195601488a">
canvas4.clear();
turtle4.move(150, 200);
turtle4.penColor(255, 125, 125);
spiralarm(turtle4, 120, 2, 6);
</run>
<code id="539198142a777">
public void galaxie(Object turtle, 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(turtle, x, dx, winkel_n);
turtle.right(winkel_m);
}
}
</code>
<canvas <width="300" height="400">
</canvas>
<run id="539198142a837">
canvas5.clear();
turtle5.move(200, 150);
turtle5.penColor(255, 125, 125);
galaxie(turtle5, 100, 5, 30);
</run>