Computergraphikpraktikum rasteralgorithmen ws04 05
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Computergraphikpraktikum Rasteralgorithmen WS04/05 PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

Computergraphikpraktikum Rasteralgorithmen WS04/05. Agenda. Thema. Didaktische Überlegungen. Applets. Implementierung. Sonstiges. Agenda. Thema. Didaktische Überlegungen. Applets. Implementierung. Sonstiges. Thema. Rasteralgorithmen

Download Presentation

Computergraphikpraktikum Rasteralgorithmen WS04/05

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Computergraphikpraktikum rasteralgorithmen ws04 05

Computergraphikpraktikum

Rasteralgorithmen

WS04/05


Agenda

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Agenda1

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Thema

Thema

  • Rasteralgorithmen

  • Grundlage: Foley/van Dam/Feiner/Hughes: Computer Graphics: Principles and Practice, Kapitel 3.2 - 3.4

    • Midpoint-Line-Algorithm

    • Midpoint-Circle-Algorithm

    • Midpoint-Ellipse-Algorithm

  • Zielgruppe

    • Studenten der Informatik

    • an GDV interessierte Personen


Thema idee der midpoint algorithmen

ThemaIdee der Midpoint-Algorithmen

  • Beschreibung der anzunähernden Zeichenprimitive über implizite Gleichung:

    • z.B.: F(x, y) = x2 + y2 - R2

    • Funktion hat den Wert 0 für Punkte auf der Linie

    • Vorzeichen gibt Hinweis auf Position des Punktes zur Linie

  • Für jeden Schritt gibt es zwei mögliche nächste Punkte:

    • auf gleicher Höhe

    • mit Versatz um eine Rasterlinie

  • Betrachtung des Funktionswert des Midpoints zwischen den beiden Punkten („Entscheidungsvariable“)

  • Je nach Funktionswert wird der eine oder der andere Punkt gewählt.

  • Algorithmen lassen sich inkrementell gestalten

  • Line- und Circle-Algorithmen lassen sich auf Integer-Arithmetik beschränken


Agenda2

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Didaktische berlegungen kursstruktur

Didaktische ÜberlegungenKursstruktur

  • Lerneinheiten entsprechen den Kapiteln in der Vorlage

    • (Line, Circle, Ellipse)

  • Reihenfolge entspricht zunehmender Komplexität

  • Vorgehen in den Lerneinheiten:

    • naheliegende (naive) Lösung

    • beschreiben der Nachteile dieses Ansatzes

    • Herleitung des inkrementellen Midpoint-Algorithmus

    • Demonstration in einem Applet


Didaktische berlegungen probleme

Didaktische ÜberlegungenProbleme

  • Mensch sieht sofort, welche Punkte zu setzen sind

    • Lösung eines Problems, dass nur der Computer hat

    • „Aha-Effekte“ sind schwer zu erzielen

  • Herleitung des Algorithmus aus impliziter Gleichung ist mathematischer Prozess

    • Darstellung nur als Abfolge von Gleichungen im Text möglich

  • Rechenschritte des Algorithmus lassen sich nicht graphisch darstellen


Didaktische berlegungen quiz als lernkontrolle

Didaktische ÜberlegungenQuiz als Lernkontrolle?

  • „Welchen Punkt wird der Algorithmus als nächstes wählen?“

    • Lösung für Menschen offensichtlich und langweilig

  • Abfrage von Vokabeln: „Die Entscheidung für den nächsten zu zeichnenden Punkt wird mit Hilfe des Funktionswerts des ... getroffen.“

    • trivial bis stumpfsinnig

  • Fragen mit komplexeren Antworten (Freitext) sind nicht mit vernünftigem Aufwand zu überprüfen


Didaktische berlegungen soll der user zeichenparameter vorgeben k nnen

Didaktische ÜberlegungenSoll der User Zeichenparameter vorgeben können?

  • Plan in der frühen Phase: User gibt Start- und Endpunkt von Linien vor

  • Algorithmus muss folgende Fälle beachten:

    • Richtung der Linie

    • Steigung der Linie (positiv oder negativ)

    • Steigung der Linie (absolut größer oder kleiner 1)

  • Möglichkeiten:

    • Fallunterscheidung am Anfang

      • viele nahezu identische Codeabschnitte

      • nur ein kleiner Teil wird genutzt

    • Fallunterscheidungen im Code

      • Algorithmus wird durch Variablenumdeutungen (z.B. x- vs. y-Koordinate) und if-then-else-Konstrukte unleserlich

  • Alternative: Usereingabe stark einschränken

  • Erkenntnisgewinn in beiden Fällen gering


Agenda3

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Applets ben tigte funktionen

AppletsBenötigte Funktionen

  • Anzeige des ausgeführten Codes

  • Anzeige der wichtigsten Variablen

  • Darstellung der Ideallinie

  • Darstellung des Rasters mit vom Algorithmus gesetzten Punkten


Applets randbedingungen l sung

AppletsRandbedingungen & Lösung

  • Platz beschränkt, Größe durch Templates vorgegeben

  • Code & Variablenwerte müssen lesbar bleiben

    • Mindestschriftgröße

    • Code passt nicht komplett in die Appletfläche

  • Code & Variablenwerte werden in die Zeichenfläche eingeblendet

  • Code muss scrollen, so dass der aktuell ausgeführte Bereich sichtbar ist


Applets ablauf des algorithmus

AppletsAblauf des Algorithmus

  • Automatischer Start

    • User sieht: „Hier passiert etwas.“

  • Automatisches Weiterschalten um einen Schritt in einem festen Intervall

    • Individuelle Einstellmöglichkeit des Intervalls vs. feste Vorgabe

  • Möglichkeit, auf manuelle Kontrolle umzuschalten

  • Reset, um Algorithmus neu zu starten und Zoom/Bildausschnitt zurückzusetzen


Agenda4

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Implementierung klasse mygrid

ImplementierungKlasse MyGrid

  • Applets besitzen grundsätzlich gleiche Funktionalität

  • Grafik-Funktionen ausgelagert in Klasse „MyGrid“

    • Bereitstellung der Zeichenfläche (erbt von Canvas3D)

    • Hintergrundraster

    • Einblendung der Variablenwerte

    • Einblendung des Pseudocodes

    • Zeichnen der vom Algorithmus berechneten Punkte

    • Zeichnen des Midpoints


Implementierung appletklassen

ImplementierungAppletklassen

  • „AlgorithmApplet“ als Oberklasse für alle Applets

    • Zeichnet die Buttons

    • Implementiert ActionListener für die Buttons (Callback)

    • Stellt Callback-Funktion „doStep()“ für den Timer bereit

  • Eigentliche Applets implementieren Algorithmus in „doStep()“


Implementierung klassendiagramm

ImplementierungKlassendiagramm


Implementierung probleme

ImplementierungProbleme

  • Java3D ist teilweise schwer zu debuggen

    • Code sieht gut aus, scheint aber nichts zu bewirken

  • Threading beißt sich mit internem Threading von Java3D

    • MyTimer als Behavior

  • Ausgabe des Pseudocodes nicht einfach

    • Wahl der Schriftgröße

  • Ausgegebener Pseudocode stimmte nicht mit ausgeführtem Code überein


Implementierung formeln

ImplementierungFormeln

  • HTML bietet nur rudimentäre Unterstützung für mathematische Formeln

  • Internet Explorer beherrscht kein MathML

  • Darstellung als Graphik sehr umständlich

    • Änderungen

    • Passgenaues Rendering und Einfügen in den Text

  • Wenig Brüche und Wurzeln

  • HTML als kleineres Übel


Agenda5

Agenda

Thema

Didaktische Überlegungen

Applets

Implementierung

Sonstiges


Sonstiges

Sonstiges

  • Programmierung an zwei Lokationen unter komplett verschiedenen Betriebssystemen

    • Test der Applets und Lernbarumgebung schwierig

  • Dreamweaver-Testversion zu früh installiert

    • 30 Tage Testzeitraum waren vor Beginn der Kurserstellung um

  • Parallel laufendes Seminar hat sehr viel Zeit gefressen

  • Längste Programmiersession: 26 Stunden (vor Abgabe des Codes)


Computergraphikpraktikum rasteralgorithmen ws04 05

Vielen Dank für Ihre Aufmerksamkeit


  • Login