Computergraphik Grundlagen
|
|
|
- Norbert Grosse
- vor 8 Jahren
- Abrufe
Transkript
1 Prof. Stefan Schlechtweg-Dorendorf Hochschule Anhalt (FH) Köthen Fachbereich Informatik Wintersemester 2010/ / 27
2 Teil II CG-Programmierung und OpenGL 2 / 27
3 Inhalt 1. Computergraphik-Programmierung 2. OpenGL-API Einführung Dokummentation und Materialien Bibliotheken Funktionen und Bezeichner Arbeitsweise 3. OpenGL-Beispiel Überblick Callbacks Ereignisorientierte Architektur Display-Callback Zusammenfassung 3 / 27
4 Wo sind wir? 1. Computergraphik-Programmierung 2. OpenGL-API 3. OpenGL-Beispiel 4 / 27
5 Computergraphik-Programmierung Anwendung Funktionsaufruf Daten Graphiksystem Output Input I/O-Geräte Anwendung kommuniziert nicht direkt mit dem Graphiksubsystem verschiedene Bibliotheken dazwischengeschaltet OpenGL DirectX Bibliotheken stellen High-Level-Schnittstelle für Datenaustausch und Funktionsaufrufe zur Verfügung 5 / 27
6 Computergraphik-Programmierung Anwendung andere API OpenGL Treiber / Systemprogramme Betriebssystem Bibliotheken können auch aufeinander aufbauen 6 / 27
7 Wo sind wir? 1. Computergraphik-Programmierung 2. OpenGL-API Einführung Dokummentation und Materialien Bibliotheken Funktionen und Bezeichner Arbeitsweise 3. OpenGL-Beispiel 7 / 27
8 OpenGL-API Low-level Bibliothek für 2D- und 3D-Graphik Überlegung bei Low-Level-Bibliotheken: Vorrat an vordefinierten Primitiven. Open GL: relativ gering. Auf OpenGL aufbauende Extensions erweitern den Vorrat. Aufsätze: OpenInventor, Performer, GLUT, GLU-Bibliothek (OpenGL Utility Library) Hardwareunabhängig (Mindestfunktionalität auf allen Plattformen evtl. in Software) Unabhängig vom Fenstermanager (X11, Win32, Mac) Client-Server Unterstützung (X11) ähnlich zu anderen Graphik-APIs (Java3D, DirectX,... ) 8 / 27
9 OpenGL-API einer der älteren Graphikstandards (erste Veröffentlichung 1992) seit dem zum Quasi-Standard aufgestiegen ständige aber langwierige Weiterentwicklung Einbau programmierbaren Shadings Unterstützung mobiler Geräte mit OpenGL ES Entwicklung von WebGL vielfältige Aufsätze und Erweiterungen verfügbar nicht Szenegraphen-basiert 9 / 27
10 Dokumentation und Materialien Homepage: Dokumentationen Red Book Blue Book sehr gute Tutorials unter 10 / 27
11 Weitere Bibliotheken OpenGL selber stellt nur grudlegende Funktionen zur Verfügung zusätzlich zwei weitere Bibliotheken: GLU OpenGL Utility Library vordefinierte Objekte vereinfachte Betrachtungstransformationen bzw. Kameradefinitionen GLUT GL Utility Toolkit ermöglicht Systemunabhängige OpenGL-Programme mehrere OpenGL-Fenster Callback-Ereignisverarbeitung Idle-Routine, Timer Funktionen für verschiedene Objekte Fensterverwaltung, Overlay 11 / 27
12 OpenGL-Funktionen sieben große Gruppen von Funktionen: Primitiv-Funktionen: definieren low-level-objekte (Punkte, Liniensegmente, Pixel, Text, Oberflächen,... ) Attribut-Funktionen: spezifizieren, wie die Primitive auf der Ausgabe erscheinen (Farbe, Linienstil, Transparenz, Font,... ) Betrachtungs-Funktionen: definieren die synthetische Kamera (Position, Orientierung, Kameraparameter,... ) Transformations-Funktionen: zur Transformation von Objekten (Rotation, Verschiebung, Skalierung,... ) Eingabe-Funktionen: für interaktive Applikationen zur Behandlung verschiedener Eingabegeräte (Tastatur, Maus,... ) Kontroll-Funktionen: zur Kommunikation mit dem Fenstersystem, Initialisierung, Fehlerbehandlung,... Abfrage-Funktionen: zur Abfrage eingestellter Parameter im API 12 / 27
13 OpenGL-Funktionen und Bezeichner alle Bibliotheken definieren eine Reihe von Funktionen und Bezeichnern (Konstanten) erkenntlich durch einen Präfix gl bzw. GL für GL-Funktionen und -Bezeichner glu bzw. GLU für GLU-Funktionen und -Bezeichner glut bzw. GLUT für GLUT-Funktionen und -Bezeichner ansonsten sprechende Namen meist nach einem einheitlichen Schema aufgebaut gl<name><anz><typ>() name Funktionsname (Vertex, Color) anz Anzahl der Argumente (2, 3, 4) typ Datentyp der Argumente (i, f, d,... ) Beispiele: glvertex2i(), glvertex3f(), glvertex4d() glcolor3f(), glcolor4d() 13 / 27
14 OpenGL als Zustandsmaschine Arbeitsweise von OpenGL durch Zustände gesteuert Zustände sind ähnlich globaler Variablen Operationen aufgrund von Zustandsvariablen interpretiert Beispiele: Rendermodus Beleuchtungsmodell Zeichenattribute einmal gesetzter Zustand gilt solange, bis er geändert wird (auch über mehrere Aufrufe einer Funktion hinweg) Setzen und löschen der Variablen: void glenable( GLenum attribut); void gldisable( GLenum attribut); 14 / 27
15 Wo sind wir? 1. Computergraphik-Programmierung 2. OpenGL-API 3. OpenGL-Beispiel Überblick Callbacks Ereignisorientierte Architektur Display-Callback Zusammenfassung 15 / 27
16 OpenGL-Beispiel # include "glut.h" /* Zeichenfunktion. Hier stehen die OpenGL - Befehle, die letztendlich die Darstellung auf dem Bildschirm erzeugen */ void mydisplay ( void ) { glclear ( GL_COLOR_BUFFER_BIT ); // Bildschirm ( Fensterinhalt ) loeschen // Hier kommen die Zeichenbefehle hin } glutswapbuffers (); // " Anzeige " des Bildes ( DoubleBuffering ) int main ( int argc, char ** argv ) { glutinit ( &argc, argv ); // Initialisierung von GLUT glutinitdisplaymode ( GLUT_DOUBLE GLUT_RGBA ); // Einstellen des Anzeigemodus glutinitwindowsize ( 600, 600); // Einstellen der Fenstergroesse glutcreatewindow ( " OpenGL "); // Fenster erzeugen glutdisplayfunc ( mydisplay ); // Setzen der Display - Funktion glutmainloop ( ); // glut - Hauptschleife exit ( 0); } 16 / 27
17 Die main-funktion initialisieren des GLUT-Toolkits Initialisieren des Anzeigemodus Einstellen der Fenstergröße ( ) Fenster mit dem Titel OpenGL erzeugen Registrieren der Display-Callback Eintreten in die GLUT-Hauptschleife 17 / 27
18 Callbacks spezielle Funktionen, die von OpenGL (GLUT) zurückgerufen werden Programmierer stellt Funktion bereit, ruft sie aber nicht direkt auf Callbacks müssen registriert (angemeldet) werden Beispiel: Display-Callback registriert mit glutdisplayfunc() Übergeben den Funktionsnamen immer dann aufgerufen, wenn die Ausgabe neu gezeichnet werden muss Funktion muß vor Registrierung deklariert sein glutdisplayfunc ( mydisplay ); 18 / 27
19 weitere wichtige Callbacks: Callbacks Reshape-Callback aufgerufen, wenn sich Geometrie oder Position des Fensters ändert Keyboard-Callback aufgerufen, wenn eine Taste gedrückt oder losgelassen wird Mouse-Callback aufgerufen beim Drücken und Loslassen der Maustasten Motion-Callback aufgerufen bei Mausbewegungen Idle-Callback aufgerufen, wenn der Rechner Zeit hat Time-Callback aufgerufen in bestimmbaren Zeitintervallen generelles Konzept: Ereignisorientierte Architektur 19 / 27
20 Ereignisorientierte Architektur oft verwendet (heute fast ausschließlich) bei Fenstersystemen und anderen größeren Systemen, insb. in der Computergraphik bei interaktiven Anwendungen Eingabegeräte, die Anwendung, das Betriebssystem usw. erzeugen Ereignisse (events) Ereignisse werden in einer Ereigniswarteschlange (event queue) nach dem FIFO-Prinzip gespeichert Anwendung arbeitet die Ereigniswarteschlange ab Anwendung beinhaltet Funktionen, die auf unterschiedliche Ereignisse entsprechend reagieren Programmierer ruft Funktionen nicht explizit auf sondern System erzeugt Funktionsaufruf bei OpenGL: Callbacks 20 / 27
21 Die GLUT-Hauptschleife Programm fragt ständig Ereigniswarteschlange ab entsprechend dem Ereignistyp wird Callback aufgerufen (sofern eine registriert wurde) sind alle typisierten Ereignisse abgearbeitet, wird die Idle-Callback aufgerufen while (1) { if ( Graphik wurde verändert ) { call DISPLAY Callback Funktion ; } if ( Fenster wurde verändert ) { call RESHAPE Callback Funktion ; } if ( Tastatur betätigt oder Maus bewegt ) { call KEYBOARD / MOUSE Callback Funktion ; } call IDLE Callback Funktion ; } 21 / 27
22 wichtigste Callback Die Display-Callback erzeugt die graphische Ausgabe aufgerufen, wann immer ein Neuzeichnen des Ausgabefensters notwendig ist void display ( void ) { glclear ( GL_COLOR_BUFFER_BIT ); // Funktionsaufrufe zum Erzeugen der graphischen Ausgabe hier glutswapbuffers (); } glclear(...) löscht den Ausgabebereich glutswapbuffers(...) kennzeichnet Ende der Ausgabe und erzwingt damit eine Ausgabe auf dem Gerät (auch mit glflush(...)) 22 / 27
23 Die Display-Callback Erzeugen graphischer Ausgaben: direkte zweidimensionale Ausgabe auf dem Bildschirm (nicht mit OpenGL geräteabhängig) Modellieren zwei- oder dreidimensionaler Objekte durch Angabe der Geometrie und Topologie (folgt in Teil III) Attributieren der erzeugten Geometrie Einstellen der virtuellen Kamera Ausgabe zunächst: Verwenden vordefinierter Geometrien und einer Standardansicht void display ( void ) { glclearcolor ( 0.0, 0.0, 1.0, 0.0); glclear ( GL_COLOR_BUFFER_BIT ); glutwiresphere ( 0.5, 10, 10); glutswapbuffers (); } 23 / 27
24 Die Display-Callback glclearcolor( red, green, blue, alpha) setzt die Hintergrundfarbe als RGBα-Tupel glclear(...) löscht den Hintergrund mit der spezifizierten Hintergrundfarbe glutwiresphere( radius, slices, stacks) vordefinierte Geometrie aus der GLUT-Library Drahtgitterkugel im Koordinatenursprung radius = Radius der Kugel slices = Anzahl der Längengrade stacks = Anzahl der Breitengrade 24 / 27
25 Standard-Koordinatensystem OpenGL nutzt ein flexibles System der Koordinatentransformationen, um die genaue Ansicht zu bestimmen folgt im Teil III vordefinierte Standardansicht ohne weitere Einstellungen im Prinzip Paralleprojektion auf die xy-ebene / 27
26 OpenGL-Beispiel # include "glut.h" /* Zeichenfunktion. Hier stehen die OpenGL - Befehle, die letztendlich die Darstellung auf dem Bildschirm erzeugen */ void mydisplay ( void ) { glclearcolor ( 0.0, 0.0, 1.0, 0.0); // blauer Hintergrund glclear ( GL_COLOR_BUFFER_BIT ); // Bildschirm ( Fensterinhalt ) loeschen glutwiresphere ( 0.5, 10, 10); // Kugel glutswapbuffers (); // " Anzeige " des Bildes ( DoubleBuffering ) } int main ( int argc, char ** argv ) { glutinit ( &argc, argv ); // Initialisierung von GLUT glutinitdisplaymode ( GLUT_DOUBLE GLUT_RGBA ); // Einstellen des Anzeigemodus glutinitwindowsize ( 600, 600); // Einstellen der Fenstergroesse glutcreatewindow ( " OpenGL "); // Fenster erzeugen glutdisplayfunc ( mydisplay ); // Setzen der Display - Funktion glutmainloop ( ); // glut - Hauptschleife exit ( 0); } 26 / 27
27 OpenGL-Beispiel Erstes Beispiel Zweites Beispiel 27 / 27
Einführung in OpenGL. Einführung in OpenGL
OpenGL: Einführung/Standard - OpenGL (Open Graphics Library) ist ein Standard für 3D Rendering und 3D Hardware-Beschleunigung - OpenGL läuft unter Windows, MacOS, Linux, Unix, - Website: http://opengl.org
Grafikprogrammierung (Echtzeitrendering)
(Echtzeitrendering) erfordert Unterstützung für beide Aufgaben der Computergrafik Geometrische Modellierung Datenstrukturen für geometrische Modelle Schnittstellen für deren Kombination Bildsynthese Rendering
1.1 Verwendung von GLUT
1.1 Verwendung von GLUT Grundlegende Funktionsweise - Öffnen eines Fensters - Registrieren von Callback-Routinen - Start einer Hauptroutine, die erst beim Schließen des Fensters verlassen wird - Beim Auftreten
Spiele, Simulation, dynamische Systeme
Spiele, Simulation, dynamische Systeme Einführung in OpenGL und GLUT Sebastian Skalec (11038991) Christian Fehmer (11042419) Was können wir nach dem Vortrag? Erstellen eines OpenGL-Fensters Motivation
DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006
DirectX und OpenGL Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 2 Inhalt Einleitung Übersicht DirectX und Komponenten Übersicht OpenGL Sprachlicher Aufbau OpenGL Sprachlicher
Computergrafik II. OpenGL Einführung
Computergrafik II OpenGL Einführung OpenGL Rein prozedurales Interface Keine direkten Klassen/Objekte Verwaltung von OpenGL-Strukturen mittels Identifier Explizites funktionales Erzeugen/Löschen von Objekten
Lehrheft OpenGL. Zur Veranstaltung Computergraphik I (Grundlagen) Prof. Dr. Stefan Schlechtweg-Dorendorf Hochschule Anhalt Fachbereich Informatik
Lehrheft OpenGL Zur Veranstaltung Computergraphik I (Grundlagen) Prof. Dr. Stefan Schlechtweg-Dorendorf Hochschule Anhalt Fachbereich Informatik Inhaltsverzeichnis 1 Grundlegendes zu OpenGL...3 2 Einrichten
Einführung in OpenGL. Thomas Kalbe 30.10.2007. Technische Universität Darmstadt. [email protected]
Einführung in OpenGL Thomas Kalbe Technische Universität Darmstadt [email protected] 30.10.2007 3D Graphic APIs 2 / 42 API: Application Programming Interface low-level graphic
Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar
Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung
Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans
Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung
Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.
Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren
GUI Programmierung mit GTK
LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open
Eine Einführung in OpenGL
Eine Einführung in OpenGL Inhaltsverzeichnis 1 Übersicht 2 1.1 Was ist OpenGL?........................... 2 1.2 Was leistet OpenGL?......................... 2 2 Erste Schritte mit OpenGL 3 2.1 Grundstrukturen...........................
Programmieren mit OpenGL und GLUT
Programmieren mit OpenGL und GLUT Prof. Dr. Manfred Brill Oktober 2003 Inhaltsverzeichnis 1 OpenGL 1 1.1 Bibliotheken und Header-Dateien.... 1 1.2 OpenGL Datentypen... 2 2 GLUT 3 2.1 Ein typisches GLUT-Hauptprogramm........
Programmierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
Eine schnelle Processing-Einführung. von Thomas Rau
Eine schnelle Processing-Einführung von Thomas Rau Inhaltsverzeichnis 1 Was Processing ist 3 2 Der Sketch 3 2.1 Die setup()-methode................................... 3 2.2 Die draw()-methode....................................
Einstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung
Ereignisorientierte Programmierung
Ereignisorientierte Programmierung 2 Klassisches Vorgehen Idee der weitgehend automatisierten Problemlösung. Entwickler analysiert Erfordernisse, stellt einen idealen Algorithmus dafür auf. Programm arbeitet
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
Erste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
Typ : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung
1 Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung Stefan Ziegler 11. März 2005 INHALTSVERZEICHNIS 2 Inhaltsverzeichnis 1 Aufgabe 3 2 Umsetzung 4 3 Struktur 5 4 Paketverarbeitung 8 5 Grafische
Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
Seitenanzahl 44 GLUT. Anmerkungen, Feedback, etc. sind natürlich wie immer herzlich Willkommen.
Seitenanzahl 44 GLUT Autor: Joachim F. Rohde Homepage: http://www.joachimrohde.com Kontakt: [email protected] Datum der letzten Änderung: 03.06.2003 Datum der Veröffentlichung: 04.05.2005 Info:
Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
Java Kurzreferenz Für Fortgeschrittene
Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
Theorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Eine solche Programmierschnittstelle ist GLUT (OpenGL Utility Toolkit - Aussprache wie glutttony ).
OpenGL Open Graphics Library (OpenGL: Silicon Graphics Inc.) www.opengl.org Aktuelle Version: 4.4 (2013) 1982-92: IRIS GL (für SGI-Rechner) Seit 1992 frei verfügbar Definitionsgremium: OpenGL ARB (Architecture
Ereignisse Auf Benutzereingaben reagieren
Ereignisse Auf Benutzereingaben reagieren JavaScript ermöglicht es dem Entwickler auf Ereignisse (engl.: events) im Browser zu reagieren. Auf diese Weise kann der Benutzer mit den Anwendungen interagieren,
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Objektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
Arduino für FunkAmateure
Arduino für FunkAmateure Arduino Einführung Teil 9 Taster-Platine 4x4 Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Überlegungen zur Schaltung und Algorithmus 4. Zuordnung Arduino-Pins
Grundlagen der Informatik
Grundlagen der Informatik Einführung in die Programmiersprache C Teil 2 Ein- und Ausgabe in C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Ein-
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:
Ein- und Ausgabe (I/O)
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten
Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen
Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen
Objektorientierte Programmierung
Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren
Das Model/View/Controller Paradigma
Model/View/Controller Das Model/View/Controller Paradigma Christian Knauer Trennung von Daten, Ansicht und Funktion ermöglicht z.b. mehrere Ansichten desselben Datensatzes wird meist als Model-Delegate
Übungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave
Fachhochschule Südwestfalen Wir geben Impulse Kontrollstrukturen und Schleifen in Octave Einführung Inhalt m-files Script-Files Function-Files Ein- Ausgabe von Variablen oder Ergebnissen For-Schleife While-Schleife
Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals
MÜNSTER Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals Prof. Dr. Christian Engwer & Andreas Buhr 16. April 2014 MÜNSTER Interaktive Simulationen 2 /22 Normales C++ Programm Programmstruktur
Einführung: Zustandsdiagramme Stand:
Einführung: Zustandsdiagramme Stand: 01.06.2006 Josef Hübl (Triple-S GmbH) 1. Grundlagen Zustandsdiagramme Zustände, Ereignisse, Bedingungen, Aktionen 2. Verkürzte Darstellungen Pseudozustände 3. Hierarchische
Objektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
Delegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2009/0 : Technik vs. Iteration Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund 2 Definition (einfache,
Java: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
Eine Einführung in C-Funktionen
Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................
Prof. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100
Zahlenraten: Ein Spiel in Java.
Zahlenraten: Ein Spiel in Java. Nach dem Start vom Java-Editor (und dem Erstellen eines JFrame-Programms) sieht man Folgendes: Dieser Code startet das Programm, indem es ein Objekt der Klasse Zahlenraten
Speicherklassen (1) Lokale Variablen
Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden
Unterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
Ein- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
Programmierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
In BlueJ geht es einfach
Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch
Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker
Diplomarbeit 5HDO7LPH6SHFLDO (IIHFWV Neue Möglichkeiten durch programmierbare Shader Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker Betreut von: Paul Grimm, Ralf Dörner Beginn: 01.04.02 Abgabe: 30.09.02
Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg
GPU-Versuch [email protected] Friedrich-Alexander-Universität Erlangen-Nürnberg Praktikum Parallele Rechnerarchitekturen SS2014 Outline 1 Einführung 2 Outlook 1 Einführung 2 Eine kurze Geschichte
Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)
Oliver Brinkmann [email protected] Java Swing-Applikationen & JApplets (mit NetBeans) 1 Einführung in NetBeans Vorstellung: AWT-/Java-Swing-Paket JApplet Ereignisverarbeitung mit NetBeans
Vergleich CAD-Programme
Vergleich CAD-Programme EliteCAD VectorWorks Bedienbarkeit Die Benutzeroberfläche besteht aus dem Zeichenfeld sowie drei Tool- Leisten mit Zeichenwerkzeugen, Parameter-Eingabefeldern und Darstellungsoptionen.
OpenGL. (Open Graphic Library)
OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation
3D-Konstruktionsgrafik. FRILO Software GmbH Stand:
FRILO Software GmbH www.frilo.de [email protected] Stand: 19.10.2015 3D-Konstruktionsgrafik Diese Dokumentation informiert über die Grundlagen zur 3D-Grafikansicht unserer Programme. Inhaltsverzeichnis Anwendungsmöglichkeiten...
Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework
Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen
Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern
Anwendung und Programmierung von Mikrocontrollern Sommersemester 2013 Dr.-Ing. Hubert Zitt Kontakt: [email protected] www.fh-kl.de/~zitt Dr.-Ing. Hubert Zitt Seite 1 von 24 S65 Shield (von oben) Komponenten
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
Probeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
Informatik Repetitorium SS 2009. Volker Jaedicke [email protected] 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke [email protected] 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
Architektur moderner GPUs. W. Sczygiol - M. Lötsch
Architektur moderner GPUs W. Sczygiol - M. Lötsch Überblick Chipentwicklung Aktuelle Designs Nvidia: NV40 (ATI: R420) Vertex-Shader Pixel-Shader Shader-Programmierung ROP - Antialiasing Ausblick Referenzen
Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration
Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist
Einführung in COM. 04.04.2006 Seite 1
Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006
Programmier-Befehle - Woche 10
Funktionen Rekursion Selbstaufruf einer Funktion Jeder rekursive Funktionsaufruf hat seine eigenen, unabhängigen Variablen und Argumente. Dies kann man sich sehr gut anhand des in der Vorlesung gezeigten
3. Die Programmiersprache Java
3. Die Programmiersprache Java 3.1 Arbeiten mit BlueJ 3.2 Objekte und Klassen 3.3 Klassen und Unterklassen 3.4 Daten und Operationen 3.5 Ausdrücke 3.6 Algorithmische Kernsprache 3.7 Sprachbeschreibung
Grundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
Parallel-IO. Ports am ATmega128
Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher
(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
Szenario 3: Service mit erweiterter Schnittstelle
2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
Tag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Smartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de [email protected] Was ist Android Offene Plattform für mobile Geräte Software Kompletter
Vorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
Blender Tutorial Dresden in 3D
Blender Tutorial Dresden in 3D Einführung In Blender wird viel mit Tastenkürzeln gearbeitet. (Die Kürzel sind am Ende nochmal gelistet). Damit diese Kürzel funktionieren, müsst ihr mit der Maus über dem
