Ein kleiner Programmierkurs - Teil 1.2: "Hello World" interaktiv

In diesem Abschnitt wollen wir etwas Bewegung ins Spiel bringen. Der Benutzer soll selbst bestimmen können, wo der Punkt gezeichnet wird.
Dazu zeichnen wir einen Punkt A im Konstruktionsfenster. Dieser Punkt A ist von nun an auch in CindyScript unter seinem Namen erreichbar und wir können ihn benutzen, um die Position des Textets festzulegen:


drawtext([A.x,A.y],"Hallo Welt!",size->32);



Bitte schalten Sie Java ein, um eine Cinderella-Konstruktion zu sehen.

Jedes geometrische Objekt in Cinderella, hat bestimmte Attribute. Dies sind bei einem Punkt u.a. die Größe, Farbe oder Position. Diese Attribute können wir in CinyScript auslesen oder verändern. Dazu nehmen wir den Namen des Objekts und den Namen des Attributs und schreiben sie mit einem Punkt getrennt hintereinander. So ist z.B. A.x die x-Koordinate des Punkte A und A.y seine y-Koordinate. Diese Werte können wir nun statt zweier Zahlen als Position unseres Textes verwenden.
Mit den Werten, die uns die Attribute liefern, können wir durchaus auch rechnen, so wie in diesem Beispiel, in dem wir die Farbe des Textes von seiner Position abhängig machen wollen:


drawtext([A.x,A.y],"Hallo Welt!",size->32,color->[A.x/10,A.y/10,0]);


Bitte schalten Sie Java ein, um eine Cinderella-Konstruktion zu sehen.

Oder noch etwas komplizierter:


drawtext([A.x,A.y],"Hallo Welt!",size->32,color->if(A.x>A.y,[1,0,0],[0,1,0]));


Bitte schalten Sie Java ein, um eine Cinderella-Konstruktion zu sehen.

Hier sehen, wir, dass die Schrift mal rot, mal grün dargestellt wird. Doch wovon hängt das ab? Dazu schauen wir uns einmal den Befehl


if(A.x>A.y,[1,0,0],[0,1,0])

etwas genauer an. Dies ist eine bedingte Anweisung. Diese erhält als ersten Parameter einen Boolschen Ausdruck, also eine Art Aussage, die entweder wahr oder falsch ist. Man nennt es auch die Bedingung. Die allgemeine Form lautet


if(Bedingung, mache dies, mache das)


Wenn nun die Bedingung erfüllt ist, dann werden die Anweisung "mache dies" ausgeführt, ansonsten die Anweisung "mache das". (Im Allgemeinen können "mache dies" und "mache das" auch aus mehreren Anweisungen bestehen, die dann wieder durch Semikolons getrennt sind.)
Manchmal möchte man die Anweisungen "mache das" gar nicht, falls die Bedingung nicht erfüllt ist. Dann kann man diesen Teil einfach weglassen und es bleibt die Form


if(Bedingung, mache dies)


Ein zweiter Blick in die Anweisung enthüllt nun, wann die Farbe des Textes wechselt. Dies ist immer der Fall, wenn der Punkt A die Winkelhalbierende y=x überquert. Denn wenn A.x größer als A.y ist, so wird der Text rot gezeichnet, ansonsten grün.
Um dies zu bestätigen, wollen wir diese Winkelhalbierende nun einzeichnen. Dabei beachten wir, dass diese Winkelhalbierende nichts anderes ist, als der Funktionsgraph der Identität. Deshalb wollen wir nun die Identität als Funktion definieren und anschließend ihren Graphen zeichnen:


f(x):=x;
plot(f(x));
drawtext([A.x,A.y],"Hallo Welt!",size->32,color->if(A.x>A.y,[1,0,0],[0,1,0]));


Bitte schalten Sie Java ein, um eine Cinderella-Konstruktion zu sehen.

Im nächsten Abschnitt verlassen wir unser kleines "Hello World!". Dafür wollen wir uns weiter mit Funktionen beschäftigen.