Post on 10-Jan-2016
description
ComputergraphikpraktikumRasteralgorithmenWS04/05
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 2
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 3
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 4
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 5
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 6
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 7
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 8
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 9
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 10
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 11
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 12
AppletsBenötigte Funktionen
• Anzeige des ausgeführten Codes
• Anzeige der wichtigsten Variablen
• Darstellung der Ideallinie
• Darstellung des Rasters mit vom Algorithmus gesetzten Punkten
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 13
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 14
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 15
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 16
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 17
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()“
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 18
ImplementierungKlassendiagramm
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 19
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 20
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
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 21
Agenda
Thema
Didaktische Überlegungen
Applets
Implementierung
Sonstiges
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 22
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)
CG-Praktikum WS04/05: Rasteralgorithmen07.03.2005, Seite 23
Vielen Dank für Ihre Aufmerksamkeit