1 / 23

Computergraphikpraktikum Rasteralgorithmen WS04/05

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

demi
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computergraphikpraktikum Rasteralgorithmen WS04/05

  2. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  3. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  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

  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

  6. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  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

  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

  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

  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

  11. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  12. AppletsBenötigte Funktionen • Anzeige des ausgeführten Codes • Anzeige der wichtigsten Variablen • Darstellung der Ideallinie • Darstellung des Rasters mit vom Algorithmus gesetzten Punkten

  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

  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

  15. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  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

  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()“

  18. ImplementierungKlassendiagramm

  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

  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

  21. Agenda Thema Didaktische Überlegungen Applets Implementierung Sonstiges

  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)

  23. Vielen Dank für Ihre Aufmerksamkeit

More Related