inicio sindicaci;ón

Archive for November, 2006

Aufgabe 5 - Rasterbilder

Grundraster Raster 1

A) Programm: Einfaches Raster

// Bühnengröße festlegen
size(500,500);
// Default-Farben
fill(255);
background(32,39,43);
// Punktform definieren
strokeCap(PROJECT);
// Konturstärke
strokeWeight(0);
// Kantenglättung aktivieren
smooth();

int counter = 1;
int inc = 100;

for(int y=0; y
for (int x=0; x
// Farbe festlegen (abhängig von Counter -> Verlauf)
fill(255-counter*10,counter*7,0);
// Sich verkleinerndes Quadrat zeichnen
int d = x/(inc/10) + y/(inc/10);
rect(x+d/2,y+d/2,95-d,95-d);
// Zähler erhöhen
counter++;
}
}

Irgendwie kriegt’s das scheiß Wordpress hier nicht hin, die for-Anweisung korrekt in HTML umzuwandeln. y und x sollen auf jeden Fall kleiner als height bzw. width sein und jeweils um inc erhöht werden.

Bis nächsten Dienstag folgen (hoffentlich) noch weitere Beispiele …

B) Vasarely und das Raster

victor-vasarely.jpg 251.jpg image5.gif vas-pose.jpg
Periode Noir-Blanc: Konstrast der Farben Weiß und Schwarz

vasarely5.jpg medium_vasarely.jpg

Hommage à l‘hexagone: physikalisch nicht mögliche Perspektiven durch Hell-Dunkel-Effekte

0152_intro01_maxi.jpg 20060405-vasarely-2.jpg 20060405-vasarely-44.jpg chp_9_357.jpg vasarely3.jpg vasarely4.jpg
Universelle Strukturen – Vega: Er verformt ein regelmäßiges Gitter so, dass es optisch den zweidimensionalen Raum verlässt

20060405-vasarely-3.jpg vasarely-victor-feny-2602606.jpg victor2.JPG vastoggone.jpg

C) Wie programmieren (letztere)?

Gar nicht. Ja, solche Bilder würde ich erstmal gar nicht programmieren, weil diese auch sehr schnell per Photoshop erstellt sind (Filter -> Wölben).

Wenn sie nun aber programmiert werden sollen/müssen, würde ich zunächst sehen, welche Möglichkeiten mir meine Programmiersprache bietet. Wenn es Funktionen gibt, um Bilder zu verzerren könnte ich es genauso programmieren, wie ich es mit Photoshop von Hand machen würde: Gleichmäßiges Raster erstellen und anschließend verzerren.

Wenn es diese Möglichkeit nicht gibt … hm, dann wird’s wohl kompliziert. Muss ich mir mal noch Gedanken drüber machen. - Aber nicht jetzt.

Magische Zauberkugel

Ist die Magische Zauberkugel wirklich Magie oder vielleicht doch eher einfache Mathematik? Um’s kurz zu machen, hier die Mathematik:

ij sei die zweistellige Zahl, wobei gilt 1 <= i <= 9 und 0 <= j <= 9

Nun soll folgende Rechnung durchgeführt werden:
(i * 10 + j) - (i + j)

Wenn wir das etwas vereinfachen erhalten wir:
10i + j - i - j = 10i - i + j - j = 10i - i = 9i

Wir sehen also, es kommen nur wenige Werte als Ergebnis in Frage, im Einzelnen:
9, 18, 27, 36, 45, 54, 63, 72, 81 (Vielfache von 9 eben)

Und schon liegt das Rätsels Lösung auf der Hand: Jede dieser 9 Zahlen erhält einfach immer das gleiche Symbol. Natürlich ist das bei jedem Programmaufruf ein anderes, sonst würden wir den Betrug zu schnell bemerken! Die restlichen 91 Zahlen erhalten beliebige andere Symbole. Schon wird immer das richtige Symbol angezeigt, egal welche Zahl man sich ausgedacht hat.

Der Kurs am 28.11.

Dem Anfang der Stunde konnte ich leider nicht beiwohnen. Danach: Anweisungen, Zuweisungen, Schleifen in einfachster, grundlegenster Form - alte Bekannte, daher heute nichts neues fürs Lernbuch.

Dafür wenigstens ein nahezu wörtliches Zitat von Frieder: “Ihr Frauen seid ja etwas langsamer …” Dito!

Aufgabe 4 - Zufall

100 Zufallspunkte 200 Zufallspunkte

A) Was ist Zufall

Zufall ist wenn etwas passiert (oder auch nicht passiert), ohne dass dies von irgendwelchen Faktoren/Variablen/Paramtern abhängt.

In der Mathematik spricht man häufig von Zufallszahlen: Dies ist eine Anzahl von zufällig ausgewählten Ziffern. Diese müssen dabei nicht gleichmäßig verteilt sein (wie häufig angenommen). 5 Zufallszahlen (von 1 bis 9) könnten z.B. auch 2,4,7,4,4 sein. Wenn allerdings die Anzahl der ausgewählten Zufallszahlen gegen unendlich geht sollte jede einzelne ungefähr gleich oft vorkommen.
Bekannte “Zufallsgeneratoren” sind Würfel oder Karten.

Tatsächlicher Zufall kommt jedoch praktisch nicht vor: Selbst bei Würfeln kann eine Seite minimal Größer sein, so dass sie mit minimal höherer Wahrscheinlichkeit fällt, so dass die fallende Zahl nicht mehr ganz zufällig ist. Wobei gewürfelte Zufallszahlen noch deutlich zufälliger sind, als solche die vom Computer errechnet werden. Diese werden immer anhand bestimmter Parameter (z.B. aus der aktuellen Uhrzeit, etc.) berechnet. Man nennt sie daher auch Pseudo-Zufallszahlen.

Wikipedia:
Man spricht von Zufall - oder noch klarer von reinem Zufall -, wenn ein Ereignis nicht kausal notwendig auftritt.
http://de.wikipedia.org/wiki/Zufall

B) Die Funktion random() in Processing

Generates random numbers. Each time the random() function is called, it returns an unexpected value within the specified range. If one parameter is passed to the function it will return a float between zero and the value of the parameter. The function call random(5) returns values between 0 and 5. If two parameters are passed, it will return a float with a value between the the parameters. The function call random(-5, 10.2) returns values between -5 and 10.2.

http://www.processing.org/reference/random_.html

Dem habe ich nichts hinzuzufügen.

C) Was ist ein Parameter

Ein Parameter ist ein Wert, eine Variable, anhand der eine Funktion ihre Berechnungen durchführt. Die Parameter sind sozusagen die steuerenden Elemente, da alles andere der Funktion ja fix ist.

D) Programm: Zufallspunkte

// Bühnengröße festlegen
size(200,200);
// Hintergrundfarbe
background(0);
// Kantenglättung aktivieren
smooth();
// Strickstärke definieren
strokeWeight(1);
// Strichfarbe definieren
stroke(255);

// 100 zufällige Punkte zeichnen
// Überlappung nicht ausgeschlossen, aber unwahrscheinlich
for(int i=0;i<100;i++) {
point(int(random(0,width)),int(random(0,height)));
}

E) Experimente inspiriert von Steffi

Zufällig: Position, Größe, Transparenz

Zufall Quadrate Zufall Kreise

Aufgabe 3

Aufgabe 3, Bild 1Aufgabe 3, Bild 2Aufgabe 3, Bild 3

size(600,400);
background(0);

smooth();
strokeWeight(1);
strokeCap(SQUARE);

for(int i=0; i<(width*2); i++) {
int x = i;
if (x>width) {
x = width;
}
int y = (width*2)-i;
if (y>width) {
y = width;
}
float r = random(0, 50);
stroke(r);
line(0, 0, x, y);
}

stroke(255);

/* Motiv 1
for(int i=0; i
line(i/4+i,(i/2)+150,(i*i)/width+i,(i*i)/height+i);
}
*/
/* Motiv 2
for(int i=0; i
line(i,(i/2)+150,(i*i)/width,height-i);
}
*/
/* Motiv 3
for(int i=100; i
line(i,(i/2)+250,width-(i/1.5)-50,height-i);
}
*/

Bild

Was ist ein Bild? Diese Frage konnte nicht geklärt werden. Braucht es eine Begrenzung, einen Rahmen? Wo fängt ein Bild an? Ist ein Bild schon das Motiv selbst, beginnt es im Kopf, in der Erinnerung? Beginnt es auf dem Film, dem Negativ? Der Ausdruck? Die auf die Festplatte gebannten Pixel?
Ein Pixel: Position und Farbwert.

Programmiersprachen

Besonderheiten

logisch, interpretationsfrei/eindeutig

Sprachen

PHP, ASP, Java, JavaScript, C, C++, Basic, VisualBasic, HSL, Prolog, Processing, ActionScript, Lingo, AppleScript, Kobolt, Hamster

Maschinensprachen -> Höhere Sprachen

Höhere sprachen sind besser lesbar, komfortabler für den Programmierer. Sie bieten einen höheren Umfang an Funktionen, die dem Programmierer Arbeit abnehmen.

Algorithmus

Ein Algorithmus ist eine hinreichend gut verständlich und exakte Tätigkeitsbeschreibung, die uns zum Ziel führt.

Beschreibung für Rechenvorgang
endlich, genau, präzise, effektiv*

(*erzeugt einen Effekt/hat ein Ergebnis - NICHT effizient)

Definierte Abarbeitung von endlich vielen Schritten.

Programm

Algorithmus in maschinenlesbarer Form