Zusatzaufgabe scratch, Flächen

Flächenermittlung einer unregelmässigen Figur.

Flächen von Figuren kann man berechnen, wenn es Rechtecke, Quadrate, Kreise oder ähnlich sind, Bei unregelmässigen Figuren ist das Ausrechnen meist nicht möglich. Man kann dann z.B. ein Millimeterpapier drüberlegen und die Kästchen abzählen.

Mit dem Computer kann man die Pixel abzählen, und hier ist die Aufgabe dazu.

Wie macht man das: Die Pixel-Fläche eines Sprite soll abgezählt werden. Ein zweites Sprite wird zum Abmessen verwendet. Das zweite Sprite ist möglichst klein, also nur ein Pixel gross.

Alle Gruppen verwenden die Fledermaus, deren Pixel-Fläche bestimmt werden soll.

bat_stage_explained

Man bewegt das Pixel-Sprite zeilenweise über die Bühne und wenn das Pixel die Fledermaus berührt, dann erhöht man einen Zähler. Wenn dann das ganze Bild abgetastet ist hat man die Fläche in Pixeln ermittelt.

Damit das nicht allzu lange dauert sollte man nur die Koordinaten (-100, -100) bis (100, 100) abtasten.

Also

– Fledermaus, Bat importieren.
– neues Sprite (nur ein Pixel!), rot ist ganz gut, damit man das kleine Pixel überhaupt sieht.
– Sprite in Zeilen bewegen, im mittleren Bereich des Bildschirmen (-100,-100) bis (100,100). Die Bat muss in diesem Bereich positioniert werden.
– Nach jeder Bewegung des Pixels einen Stempelabdruck erzeugen. Damit man sieht, wie das Programm funktioniert.
– Das Programm läuft relativ lange. Das braucht etwas Geduld. Im Präsentationsmodus läuft das Programm schneller und noch schneller, wenn die Variablen nicht eingeblendet werden.

Das Programm muss überprüft werden. Dazu legt man in der Bat-Sprite ein zweites Köstüm mit einem Rechteck an und berechnet dessen Fläche. Dann lässt man das Programm laufen und das Ergebnis sollte dasselbe sein wie die Rechnung.

Wieviele Pixel ist die Fledermaus gross ?

Wieviele Bewegungen muss das kleine Pixel machen ?

Wie lange dauert das Scannen ? (Benutze die Stoppuhr um das zu ermitteln).

bat_scan_progress

Bühne während des Abtastens. Spooky !

Flächenermittlung MonteCarlo-Methode

Das Abscannen dauert sehr lange, ist aber genau. Es gibt schnellere Verfahren, die dafür ungenauer sind. Dabei wird nicht mehr zeilenweise abgetastet, sondern das Pixel wird mit Zufallszahlen im Bereich (-100, -100) und (100,100)  positioniert. Dann werden nur wenige Pixel gemessen, hier z.B. nur 3000 Pixel.

Wegen der verwendeten Zufallszahlen werden solche Verfahren nach einer Stadt benannt, in der es ein Spielkasino gibt.

Das Ergebnis ist nicht ganz genau, aber deutlich schneller als das Abtastverfahren. Aber es benötigt im Vergleich zum Scannen weniger als in Zehntel der Zeit.

bat_mc_3000

Monte Carlo-Verfahren, 3000 Punkte

Das Ergebnis ist nur um ein Prozent ungenau. Dafür, dass die Rechenzeit sehr viel kürzer ist ist das sehr gut.

Aufgabe: Ermittle die Fläche mit dem Zufallsalgorithmus.
– positioniere das Pixel 3000 mal zufällig in der x-Achse und y-Achse in (-100, -100) bis (100,100).
mc_position
– Zähle, wie oft das Pixel die Fledermaus berührt in einer Variable ‘ci’.
– Die Fläche ist dann ca (201*201) * ci / 3000. Warum 201 ?