lehrkraefte:blc:math:povray:while

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:math:povray:while [2017/05/05 05:39] – created Ivo Blöchligerlehrkraefte:blc:math:povray:while [2017/05/05 05:54] (current) – [Verschachtelte While-Schlaufen] Ivo Blöchliger
Line 1: Line 1:
 +{{backlinks>.}}
 +===== While-Schleife =====
 +Mit einer While-Schleife können Dinge wiederholt werden
 +(alles was zwischen #while und #end steht), **solange** eine Bedinungung **wahr** ist.
 +
 +In folgendem Code wird erst die Variable $i$ auf Null gesetzt. 
 +kann etwas wiederholt werden und aus der Variablen $i$, die sich bei jedem Durchgang ändert, Dinge berechnet und damit definiert werden:
 +<code povray>
 +#declare i=0;         // Initialisierung
 +#while (i<10)         // Code zwischen while und end wiederholen, solange i<10
 +  sphere {<0,i,0>,0.1         // Kugelposition mit i berechnen
 +    pigment { color rgb x }
 +  }
 +  #declare i=i+1;     // Nicht vergessen: i bei jedem Schritt um 1 erhöhen.
 +#end             //Ende der While-Schleife
 +</code>
 +Beachten Sie, wie die Code-Zeilen eingerückt sind. Alle Zeilen zwischen #while und #end sind eingrückt. Wird eine geschweifte Klammer geöffnet, werden folgende Zeilen eine Stufe mehr eingerückt. Die entsprechende schliessende geschweifte Klammer steht senkrecht unter dem Anfang der Zeile der öffnenden Klammer.
 +
 +==== Verschachtelte While-Schlaufen ====
 +While-Schlaufen können verschachtelt werden, damit kann z.B. eine Anordnung in einem Raster erreicht werden:
 +
 +<code povray>
 +#declare posx=0;         // Initialisierung der x-Position
 +#while (posx<10)         
 +  #declare posy=0;       // Initialisierung der y-Position (bei jedem Durchgang!)
 +  #while (posy<10)
 +    sphere {<posx,posy,0>,0.3+sin(posx/10*posy/10*pi)*0.3    
 +      pigment { color rgb <1,posx/10,posy/10> }
 +    }
 +    #declare posy=posy+1;     // Position posy erhöhen.
 +  #end                        //Ende der posy-While-Schleife
 +  #declare posx=posx+1;       // Position posx erhöhen.
 +#end                          // Ende der posx-While-Schleife            
 +</code>