230 likes | 313 Views
Computergraphikpraktikum Rasteralgorithmen WS04/05. Agenda. Thema. Didaktische Überlegungen. Applets. Implementierung. Sonstiges. Agenda. Thema. Didaktische Überlegungen. Applets. Implementierung. Sonstiges. Thema. Rasteralgorithmen
E N D
Computergraphikpraktikum Rasteralgorithmen WS04/05
Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges
Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges
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
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
Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges
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 Ü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 Ü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 Ü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
Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges
AppletsBenötigte Funktionen • Anzeige des ausgeführten Codes • Anzeige der wichtigsten Variablen • Darstellung der Ideallinie • Darstellung des Rasters mit vom Algorithmus gesetzten Punkten
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
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
Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges
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
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()“
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
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
Agenda Thema Didaktische Überlegungen Applets Implementierung 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)