Computergraphikpraktikum Rasteralgorithmen WS04/05

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Fast Fourier Transformation
Hier einige Hieroglyphen:
Steigung m berechnen Man kann die Steigung auch berechnen,
Pixelgraphiken und Rasterungsalgorithmen
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Tipps & Tricks zu benutzerdefinierten Animationspfaden
Wilhelm-Raabe-Schule Fachbereich: Mathematik Thema: Lineare Funktionen
Finale Semantik und beobachtbares Verhalten
Puck eine visuelle Programmiersprache für die Schule
Eine Arbeit von Martina Gierke, Jens Lemcke, Martin Luboschik, Sabine Maßmann, Christian Ober und Alf-Christian Schering.
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Untersuchung und szenariobasierte Entwicklung von Websites zur Orientierung in Universitätsstudiengängen unter Berücksichtigung von Prinzipien des Web.
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Geometrisches Divide and Conquer
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Zusammenfassung Vorwoche
Software-Engineering
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
PG 478 – Open Graph Drawing Framework Thema: Compounds & Force-Directed Francois Bertault & Mirka Miller – An Algorithm for Drawing Compound Graphs [1999]
Berufsinformationswoche am KFG
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Titel des Vortrags Name des Vortragenden Seminar
Delphi II - OOP IFB Fortbildung
Übersicht Motivation Konzeption Umsetzung/ Implementierung
PowerPoint.
2007 Office - Bestellung Backup Medium -Schritt für Schritt Anleitung- Hinweis: Die Bildausschnitte wurden mit Windows Vista Ultimate (Aero Oberfläche)
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Manfred Lindert, Marketing-Kommunikation,
Gestaltung von Folien mit Powerpoint
Zeichnen linearer Funktionen
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung
… oder wie finde ich den Weg
Hallo, ich möchte eine Grafik1 aus einer anderen Grafik2
Projektstudium Chipkarten Gruppe Sign(PC+Karte)
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Lineare Funktionen und ihre Schaubilder, die Geraden
PHP Basic.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Lösen von quadratischen Ungleichungen
Studentisches Seminar
Steigung und lineare Funktionen
PHP: Operatoren und Kontrollstrukturen
Steigung und lineare Funktionen
Erstellung einer PPT Präsentation
Was ist das inhaltliche Anliegen der Seminare?
Lineare Gleichungen mit 2 Variablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Analyse der Laufzeit von Algorithmen
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
A&D Persa K TB Herzlich Willkommen zum Flash 4 - Seminar.
Computer Algebra für Brüche --- angepasst an Ausbildungszwecke
Delphi Chars und Strings
2005/06 PPT Learning by Doing © by Helmut Rusch1 PPT Learning by Doing.
Grundlagenunterricht Informatik „Präsentation“ Start mit PowerPoint Hinweis: Führen Sie die Aufträge auf den Folien dieser Präsentation gleich aus. So.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
 Präsentation transkript:

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

Thema Idee 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 Überlegungen Kursstruktur 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 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? „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? 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

Applets Benö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 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 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

Implementierung Klasse 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 „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

Implementierung Probleme 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 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)

Vielen Dank für Ihre Aufmerksamkeit