Ein kleines Random-Programm!

•November 27, 2006 • 1 Kommentar

Dieses Programm liefert ein Quadrat mit schwarzem Hintergrund, hat eine Kantenlänge von 200 px und 100 weiße Punkte wurden zufällig platziert.

size(200,200);
// Größe des auszugebenden Bildes

background(0);
// Hintergrundfarbe

// um 100 Punkte auszugeben lasse ich eine Schleife von 0-99 zählen
// die gesamte Schleife wir 100 Mal durchlaufen, also 100 Punkte gezeichnet

for (int i=0; i<200; i++) {

int a = 200;
// Initialisierung der Variable a auf den Wert 200, damit ein Wert zwischen 0 und 200 geliefert wird

float x = random(a); // zuweisen des Wertes der Random-Funktion zu x
float y = random(a); // zuweisen des Wertes der Random-Funktion zu y

stroke(255);
point(x,y);
// die Werte x und y werden an die Funktion point übergeben und ein Punkt wird gezeichnet

}

Um ein Feld zu erzeugen, bei dem 200 Punkte ausgegeben werden, lässt sich dies auf die einfache Weise realisieren, indem man einfach den Zähler der for-Schleife auf 200 erhöht. Diese wird dann 200 Mal durchlaufen und erzeugt bei jedem Durchlauf einen neuen Punkt.

4_1 4_2

Gemeinsam haben diese beiden Bilder, dass ihre Grundfläche gleich groß ist, die Farbe des Hintergrundes stimmt überein und die Farbe und Größe der Punkte ist gleich.

 

Bei Bild 1 links ist ein leerer Raum auf der rechten Seite erkennbar, an anderen Stellen drängen sich die Punkte deutlich näher zusammen, was auf eine Unregelmäßigkeit schließt.

Bei Bild 2 rechts drängen sich die Punkte aufgrund ihrer doppelt so hohen Anzahl noch näher. Einige Punkte beginnen dabei Linien zu bilden und das Auge versucht Formen zu erkennen. Deshalb wirkt dieses Bild auch viel lebendiger als das Erste.

Was genau ist ein Parameter?

•November 27, 2006 • 1 Kommentar

Bei einer Funktion wird zwischen die beiden runden Klammern eine so genannte formale Parameterliste eingeschoben. Die Parameterliste besteht aus keiner, einer oder mehreren durch Kommata getrennten Parameterdeklarationen. Bei einem Parameter handelt es sich dann um eine ganz normale lokale Variable.

random(int A, float B)

Funktionsname (formale Parameterliste)

Formale Parameterliste à Parameterdeklaration

Parameterdeklaration à Datentyp, Parametername

Parametername à Bezeichner

Parameter sind also lokale Variablen von Funktionen, die dadurch initialisiert werden, dass der Funktion bei ihrem Aufruf ein entsprechender Initialisierungswert für die Variable übergeben wird.

Was leistet die Funktion random in Processing?

•November 27, 2006 • 1 Kommentar

Die Funktion random() erzeugt in der Programmiersprache Processing und wie in vielen anderen Programmiersprachen auch Zufallszahlen. Die Zahlen müssen dabei immer dem Typ int oder float entsprechen.

So liefert der Parameter 5, also random(5) eine Zahl zwischen 0 und 5.

Ein 2-stelliger Parameter, also random(5,10) liefert hingegen eine Zahl zwischen 5 und 10.

Die Funktion random() liefert also einen unerwarteten Wert innerhalb des spezifischen Wertebereichs. Doch ganz rein zufällig sind die Werte nicht. Zufallsfolgen beruhen auf mathematischen Funktionen, die zwar einen chaotischen Verlauf haben, aber dennoch einer strengen Folge gehorchen, sie sind deshalb pseudozufällig. Die Zufälligkeit wäre erst erzeugt, wenn der Startwert variiert.

Was kann man unter „Zufall“ verstehen?

•November 27, 2006 • 1 Kommentar

Zufall ist das unberechenbare Geschehen, das sich unserer Vernunft und Absicht entzieht. Gebrüder Grimm

Im Sprachgebrauch verwenden wir den Begriff Zufall um damit Ereignisse zu umschreiben, die nicht vorhersehbar sind und unerwartet eintreffen. So kann man von Zufall sprechen, wenn man in ein fernes Land reist und dort zufällig einen Bekannten aus dem eigenen Ort trifft, der ebenfalls gerade dort Urlaub macht. Zufall ist es aber auch, wenn man beim Würfelspiel 3-mal hintereinander die 6 wirft. Zufall ist es sicher auch wo die Kugel beim Roulette landet. Zufall hat also irgendwo auch etwas mit Glück zu tun. Ein Synonym für Zufall laut der deutschen Sprache ist nämlich Glück oder Glückseligkeit.

Doch auf den Begriff Zufall trifft man nicht nur beim Würfelspiel. Er ist ebenso ein geläufiger Begriff in der Philosophie, Psychologie, Mathematik, Informatik, Physik usw.

Wissenschaftlich gesehen beschreibt der Begriff Zufall ein Ereignis das nicht einer Kausalität ausgesetzt ist, also es keine Ursache für die Wirkung gibt.

Geht man näher in die Materie ein, so wird man feststellen, dass aber in der Informatik der Begriff Zufall nicht wirklich echt ist. Denn selbst dort werden die scheinbar zufällig ausgegeben Zahlen durch komplexe mathematische Systeme ermittelt.

Eine umfangreiche Auseinandersetzung mit dem Begriff Zufall findet ihr hier:

http://www.madeasy.de/2/zufall.htm

Was zeichnet eine gerade Linie aus?

•November 20, 2006 • Kommentar schreiben

Die erste Processing-Aufgabe!

•November 19, 2006 • 1 Kommentar

Nachdem das Programm erfolgreich installiert wurde sollen nun 3 Bilder generiert werden. Dabei sind nur folgende Mittel erlaubt:

  • die gerade Linie
  • die Linienstärke
  • die Linienfarbe

Mit ihnen sollen 3 Bilder generiert werden, die das Thema >> hell | dunkel << in jedem der Bilder für sich genommen, aber auch in der Folge der Bilder darstellen und variieren.

Zu jedem Bild gibt es:

  • den Code
  • das Bild
  • die Erläuterung

Eine zunächst erfundene Programmiersprache!

•November 19, 2006 • Kommentar schreiben

Welche Kommandos kann man für eine Programmiersprache erfinden, mit denen sich folgende Aufgaben realisieren lassen?

  • das Festlegen eines Rechtecks als Zeichenpapier

                document(height, width, colour)

Die Variablen in den Klammern werden an das Programm übergeben.

  • das Festlegen eines Zeichenstiftes (Farbe)

                stroke(colour)

Die Variable in den Klammern wird an das Programm übergeben.

  • das Zeichnen einer geraden Linie von einem Anfangspunkt zu einem Endpunkt

                line(x1,y1,x2,y2)

Die Variablen in den Klammern werden an das Programm übergeben.

 

Wenn diese 3 Kommandos definiert sind, sollen folgende kleine Programme geschrieben werden:

  • Zeichne eine senkrechte Linie.

                new document(1000,1000,CCCCCC);

                    stroke(FFFFFF);

                    line(50,50,50,500);

                end;

Der Befehl „line“ enthält 4 Variablen, die an das Programm übergeben werden. Dabei stehen die Zahlen für die Koordinaten in einem 2dimensionalen Koordinatensystem.

  • Zeichne eine waagerechte Linie.

                new document(1000,1000,CCCCCC);

                    stroke(FFFFFF);

                    line(100,100,500,100);

                end;

Das Gleiche gilt hier, nur dass die Variablen eine waagerechte Linie ergeben.

  • Es sollen sich 2 Linien kreuzen.

                new document(1000,1000,CCCCCC);

                    stroke(FFFFFF);

                    line(250,250,250,750);

                    line(50,500,500,500);

                end;

Nun muss man hier nur noch die Linien (Variablen) aus Programm 1 und 2 innerhalb eines Programms verbinden.

  • Eine bestimmte Fläche soll geschwärzt werden.

                new document(1000,1000,CCCCCC);

                    stroke(FFFFFF);

                    x1=0;

                    y1=0;

                    x2=500;

                    y2=0;

                        for (int i=0, i<=0, i++)  { x1+1, y1+1, x2, y2+1  }
end;
end;

Der Anfang des Programms ist zunächst gleich. Dann werden die Variablen der Linienkoordinaten initialisiert. Um eine Linie nach der anderen zu zeichnen, erhöht man die Variablen, also Koordinaten um jeweils einen Zähler. Damit das Ganze nicht unendlich läuft, schachtelt man das Ganze in einer Schleife die abbricht sobald der Zähler den Wert 500 erreicht. Dieses Programm sollte dann ein Quadrat in der Größe 500 x 500 Pixel ergeben.

Was ist eine Linie?

•November 19, 2006 • Kommentar schreiben

Worin unterscheiden sich Maschinensprachen von Assemblersprachen und von höheren Programmiersprachen?

•November 19, 2006 • Kommentar schreiben

Was ist ein Interpreter?

•November 19, 2006 • Kommentar schreiben