TurtleBlumeJavaScript/Hilfsfunktion Stängel

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
Die Hilfsfunktion Stängel ist dafür verantwortlich einen gebogenen Pflanzenstängel verschiedener Länge zu zeichnen. Ein Startwert gibt die Breite des Stängels beim Start und am Ende an.

'''Wichtig:''' Entwickelt eure Hilfsfunktion in der nachfolgende Codebox. Verwendet die globale Variable <tt>turtle</tt> dafür. Speichert die entgütige Version eurer Lösung in die Wikiseite indem ihr oben auf Bearbeiten klickt. Nur dann kann eure Funktion später verwendet werden.

<code id="Code">
function zeichneStaengel (color, length, startwidth, endwidth){
 
  // Musterlösung (die eigentlich von Schülern erarbeitet wird)
  // Wertebereichprüfung fehlt
  var pen = startwidth;
  turtle.penWidth(pen);
  var w = (startwidth-endwidth) / 50.0;
  turtle.penColor((color & 0xFF0000)>> 16,(color & 0x00FF00)>>8,color & 0x0000FF);
  var s = length/50.0;
  for(var i=0; i < 20; i++){
   turtle.forward(s);
   turtle.right(1);
   pen = pen-w;
   turtle.penWidth(pen);
  }
  for(var i=0; i < 10; i++){
   turtle.forward(s);
   turtle.right(-2);
   pen = pen-w;
   turtle.penWidth(pen);
  }
  for(var i=0; i < 20; i++){
   turtle.forward(s);
   turtle.right(0.5);
   pen = pen-w;
   turtle.penWidth(pen);
  }
}
</code>

== Schnittstelle ==
Die Hilfsfunktion <tt>zeichneStaengel</tt> soll folgende Parameter und Wertebereiche verarbeiten. 

{| border=1
! Parameter !! Wertebereich
|-
| color || 0x000000 bis 0xFFFFFF
|-
| length || 1 bis 500
|-
| startwidth || 1 bis 20
|-
| endwidth || 1 bis 20
|}

== Beispiele ==
Hier einige Beispiele wie die Ausgabe eurer Funktion aussehen könnte:

{| border="1"
| [[Bild:Admin_JavaBlume_Stamm1.jpg]] || [[Bild:Admin_JavaBlume_Stamm2.jpg]]|| [[Bild:Admin_JavaBlume_Stamm3.jpg]]
|}

== Testen ==
Testet eure Hilfsfunktion hier ausgiebig:

<run id="4d071b2e0af2c">
canvas.clear();
turtle.setAngle(0);
turtle.move(250,400);
zeichneStaengel(0x008833,200,10,4);
zeichneStaengel(0x008833,50,4,2);
</run>

<canvas w=500 h=400></canvas>