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>