(6) Polygon Clipping. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

Größe: px
Ab Seite anzeigen:

Download "(6) Polygon Clipping. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU"

Transkript

1 (6) Polygon Clipping Vorlesung Computergraphik I S. Müller KOBLENZ LANDAU

2 Wiederholung I Clipping Berechnung eines Ausschnitts Test der Gültigkeit der Parameter bei Putpixel zu teuer, daher Clipping z.b. mit Bildschirmfenster 2-Stufiges Vorgehen: Schneller Test, ob Linie innerhalb/außerhalb des Bildschirms liegt Berechnung des Schnittpunkts nur, wenn unbedingt nötig. Cohen-Sutherland KOBLENZ LANDAU S. Müller - 2 -

3 Wiederholung II Durch einfache Bit-Operationen (und, oder) lässt sich schnell erkennen, ob eine Linie vollständig innerhalb bzw. außerhalb des Bereichs liegt B A E H C F c c 1 & c 2 1 c2 = = 0 Linie vollständig außerhalb, fertig. 0 Linie vollständig innerhalb, alles zeichnen. c A &c B c C &c D D G ignore c C c D 0100 cut 5. Sonst: neue Punkte bestimmen bis 3) erreicht ist c E &c F 0000 c E c F 0000 draw c G &c H 0000 c G c H 0110 cut KOBLENZ LANDAU S. Müller - 3 -

4 Wiederholung III A (Oben, Links) A (Oben) B (0000) A (0000) A (Oben, Rechts) A (0000) B (0000) A (Unten) B (Rechts) A (Rechts) c1 = outcode( ax, ay); c2 = outcode( bx, by); while((c1 c2)!= 0) if ((c1 & c2)!= 0) return ; a = ay-by; b = bx-ax; d = ax*by-ay*bx; if (c1 == 0) c = c2; else c = c1; if ((c & C_LEFT)!= 0) x = xmin; y = -(a*x+d)/b; else if ((c & C_RIGHT)!= 0) x = xmax; y = -(a*x+d)/b; else if ((c & C_TOP)!= 0) y = ymax; x = -(b*y+d)/a; else if ((c & C_BOTTOM)!= 0) y = ymin; x = -(b*y+d)/a; if (c == c1) ax = x; ay = y; c1 = outcode(ax, ay); else bx = x; by = y; c2 = outcode(bx, by); draw_line(ax, ay, bx, by); KOBLENZ LANDAU S. Müller - 4 -

5 Wiederholung IV: Cohen-Sutherland Dieser Algorithmus arbeitet sehr effizient Er findet vor allem für Clipping an Bildschirmkanten Verwendung Nachteil: er funktioniert nur für rechteckige Ausschnitte für beliebige Ausschnittsfenster ist der Bereichscode so nicht mehr einsetzbar; das gleiche gilt für die einfache Berechnung der Schnittpunkte zwischen den Kanten der Ausschnittsfenster und den Linien Erweiterung für beliebige Ausschnittsfenster: Cyrus- Beck KOBLENZ LANDAU S. Müller - 5 -

6 Wiederholung V: Cyrus-Beck Clipping von Linien, an beliebigen, konvexen Polygonzügen Eckpunkte des Clip-Objekts müssen gegen den Uhrzeigersinn definiert werden ( counterclockwise ) Degenerierte Kanten (identische Eckpunkte) müssen vorher abgefangen werden Berechnung der Normalen auf die Kanten des Clip-Objekts, wobei Normalen nach außen zeigen Start- und Endpunkt der zu zeichnenden Linie werden für jede Kante mit Hilfe eines In/Out-Tests klassifiziert Skalarprodukt zwischen Normale und Verbindung Kante-Linienpunkt Beiden innen: weitermachen ohne SP Berechnung Beide außen: aufhören. Falls SP berechnet wird, wird dieser ebenfalls als In/Out- Punkt klassifiziert. KOBLENZ LANDAU S. Müller - 6 -

7 Wiederholung VI: Cyrus-Beck void clipanddraw(vector2d a, Vector2D b) Vector2D v,w0,w1,n; float t, tin, tout, c0, c1, nenner; int i; v = b - a; tin = 0.0; tout = 1.0; c0 = dot(w0, n); c1 = dot(w1, n); if (c0 > 0 && c1 > 0) // alles außerhalb, fertig return; if (c0 <= 0 && c1 <= 0) // innerhalb, weitertesten continue; for (i=0; i<4; i++) int inext = (i+1) % 4; n.setx( clippoints[inext].y() - clippoints[i].y() ); n.sety( - (clippoints[inext].x() - clippoints[i].x()) ); w0 = a - clippoints[i]; w1 = b - clippoints[i]; nenner = dot(v,n ); t = -c0/nenner; if (nenner < 0 && t > tin) tin = t; if (nenner > 0 && t < tout) tout = t; if (tin > tout) return; b = a + tout * v; a = a + tin * v; line_cyrus_beck.vcproj drawline(a, b); KOBLENZ LANDAU S. Müller - 7 -

8 Wiederholung VII: Cyrus-Beck B B Out In Out Out A In A In Die klassifizierten Schnittpunkte (In/Out) werden entlang von t sortiert. Ist t_in (t für äußersten In-Punkt) größer als t_out (t für innersten Out-Punkt), dann liegt die Linie außerhalb und muss nicht gezeichnet werden. KOBLENZ LANDAU S. Müller - 8 -

9 KOBLENZ LANDAU Polygon Clipping

10 Ausgangspunkt Wir haben gesagt, dass die Applikation sicherstellen muss, dass put_pixel(x,y) nur für gültige Pixel aufgerufen wird. Bisher Clipping von Linien: Cohen-Sutherland: Clippen von Linien an rechteckigen Objekten mit Hilfe von Bereichscodes. Cyrus-Beck: Clippen von Linien an beliebigen, konvexen Polygonzügen Clipping von Polygon gegen Polygon: Sutherland-Hodgman KOBLENZ LANDAU S. Müller

11 Sutherland-Hodgman Clipping eines Polygonzugs gegen ein konvexes Clip- Polygon (z.b. Bildschirm); der Polygonzug darf konkav sein. Polygonzug (4 Punkte) Ergebnis (9 Punkte) Bildschirm KOBLENZ LANDAU S. Müller

12 Vorgehen Der Polygonzug wird der Reihe nach an den Clip-Kanten geschnitten. KOBLENZ LANDAU S. Müller

13 Vorgehen Das Ergebnis muss wieder ein geschlossener Polygonzug sein. Als Eingabe dient die Liste der Eckpunkte in der richtigen Reihenfolge (gegen den Uhrzeigersinn). Die Routine gibt nach dem Schnitt mit der jeweiligen Clip-Kante - eine neue Liste von Eckpunkten zurück. Wichtig: die Reihenfolge muss stimmen. KOBLENZ LANDAU S. Müller

14 4 Fälle Annahme: der Startpunkt A wurde bereits behandelt S B A B Beide Punkte drinnen: Output B A Linie zeigt nach außen: Output S S A A B B Linie zeigt nach innen: Output S, B Beide Punkte draußen: Output (nichts) KOBLENZ LANDAU S. Müller

15 Beispiel 1 S 1 D S 2 A C Input: Output: A B C D S 1 A B C S 2 B Man beginnt mit der Kante letzter Punkt (D) erster Punkt (A) KOBLENZ LANDAU S. Müller

16 Beispiel 2 S 1 S 3 S 2 S 6 A C S 5 Input: S 1 S 3 A B C S 2 S 1 S4 S5 S6 Output: A C S 4 B KOBLENZ LANDAU S. Müller

17 PseudoCode Diese Routine wird der Reihe nach für jede Clip-Kante aufgerufen. Innerhalb/Außerhalb : hier wird wieder die Normale auf die Kante berechnet und mit Hilfe des Vorzeichens des Skalarproduktes entschieden. Output : stellt ein neues Polygon zusammen, das am Ende zurückgegeben wird. Schnittpunkt berechnet den Schnittpunkt mit der Clipkante, wobei nur Punkte zw. A und B berechnet werden dürfen. Polygon SutherlandHodgman(Polygon poly, Edge clipedge) A ist letzter Punkt des Polygons; Schleife über alle Ecken B des Polygons KOBLENZ LANDAU S. Müller Wenn B innerhalb von clipedge Wenn A innerhalb von clipedge Output (B); else else S = Schnittpunkt (A,B,edge); Output(S), Output(B); Wenn A innerhalb von clipedge A = B; S = Schnittpunkt (A,B,edge); Output(S); Ergebnis von Output zurückgeben.

18 Beispiel D A C B Problem: unnötige Kanten mit Fläche Null KOBLENZ LANDAU S. Müller

19 Sutherland-Hodgman Clipping eines Polygonzugs gegen ein konvexes Clip- Polygon (z.b. Bildschirm); der Polygonzug darf konkav sein. Problem: unnötige Kanten können am Rand entstehen, was nicht unbedingt zu Fehlern führt; aus Effizienzgründen können diese nachträglich gelöscht werden. Lässt sich sehr gut als Pipeline in Hardware umsetzen. Erweiterung für konkave Clip-Polygone: Weiler-Atherton KOBLENZ LANDAU S. Müller

20 Clippen von Texten und Bildern Schrift besteht aus Kurven für Umrisse der Buchstaben Diese werden in der Regel einmal gezeichnet und in verschiedenen Auflösungen als Pixelmuster/Bitmap gespeichert Diese Bitmaps werden als Rechtecke betrachtet und gegen das Clip-Objekt geschnitten und nur der sichtbare Teil gezeichnet. Das gleiche gilt auch für Bilder. aa KOBLENZ LANDAU S. Müller

21 Mausabfrage und Polygon-Datenstruktur KOBLENZ LANDAU

22 Polygon Ein Polygon ist ein n-eck und setzt sich aus einer Reihe von zusammenhängenden Linien zusammen. Für eine korrekte Normalenberechnung wird vorausgesetzt, dass die Eckpunkte gegen den Uhrzeigersinn definiert sind. Datenstruktur für ein Polygon (2-dimensional), z.b.: Liste von Eckpunkten, Für jeden Eckpunkt x,y-koordinate KOBLENZ LANDAU S. Müller

23 Polygon2D Klasse (Polygon2D.h) #ifndef _POLYGON2D_H #define _POLYGON2D_H #include "Vector2D.h" #include <vector> using namespace std; class Polygon2D public: Polygon2D(); ~Polygon2D(); void addpoint(vector2d point); // neuen Punkt anfuegen Vector2D getpoint(int i) const; // Punkt i zurueckliefern void deletepoints(); // alle Punkte loeschen int numpoints() const; // Anzahl Punkte void draw() const; // Polygon zeichnen private: ; #endif vector<vector2d> mpoints; // dyn. Array der Punkte KOBLENZ LANDAU S. Müller

24 Polygon2D Klasse (Polygon2D.cpp) #include "Polygon2D.h" #include <GL/glut.h> Polygon2D::Polygon2D() Polygon2D::~Polygon2D() void Polygon2D::addPoint(Vector2D point) mpoints.push_back(point); Vector2D Polygon2D::getPoint(int i) const return mpoints[i]; void Polygon2D::deletePoints() mpoints.clear(); int Polygon2D::numPoints() const return mpoints.size(); void Polygon2D::draw() const glbegin(gl_line_loop); for (int i = 0 ; i < mpoints.size() ; i++) glvertex2f(mpoints[i].x(), mpoints[i].y()); glend(); KOBLENZ LANDAU S. Müller

25 GLUT Funktion zur Mausabfrage GLUT stellt uns eine Callback-Funktion für die Maus zur Verfügung. Diese wird aufgerufen, wenn eine Maustaste gedrückt wird. void mouse (int button, int state, int x, int y) Die Parameter: button: GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON, GLUT_RIGHT_BUTTON (zeigt an, welche Knöpfe gedrückt wurden) state: GLUT_UP, GLUT_DOWN (zeigt an, ob die Taste gedrückt oder losgelassen wurde). x, y: Die Position des Mauszeigers beim Drücken der Taste (gemessen von der linken oberen Ecke des Fenster!!!) KOBLENZ LANDAU S. Müller

26 Beispielprogramm mit Mauseingabe x y void mouse(int button, int state, int x, int y) Vector2D vertex( x, HOEHE - y); y Maus Bildschirm x if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) poly.addpoint ( vertex) ; else if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) poly.deletepoints(); glutpostredisplay(); Wurde die linke Maustaste gedrückt, dann wird ein neuer Punkt zum Polygon hinzugefügt. Wurde die rechte Maustaste gedrückt, so wird das Polygon gelöscht (genauer: Liste auf Null Elemente zurückgesetzt). KOBLENZ LANDAU S. Müller

27 Beispielprogramm mit Mauseingabe #include "Vector2D.h" #include "Polygon2D.h" #include <GL/glut.h> #define BREITE 520 #define HOEHE 520 Polygon2D poly; void display( void) glclear (GL_COLOR_BUFFER_BIT); glcolor3f( 0.0, 0.0, 1.0); poly.draw(); glflush (); void init( void) glclearcolor (1.0, 1.0, 1.0, 0.0); glortho(0, BREITE, 0, HOEHE, -1, 1); void mouse( int button, int state, int x, int y) s. letzte Folie int main(int argc, char** argv) glutinit(&argc, argv); glutinitdisplaymode (GLUT_SINGLE GLUT_RGB); glutinitwindowsize( BREITE, HOEHE); glutinitwindowposition (100, 100); glutcreatewindow ( Polygoneingabe"); init (); glutmousefunc(mouse); glutdisplayfunc(display); glutmainloop(); return 0; Poly_input.vcproj KOBLENZ LANDAU S. Müller

28 Punkte und Linien in OpenGL KOBLENZ LANDAU

29 Punkte, Linien, Flächen Alle bisher behandelten Algorithmen zum Zeichnen von Punkten Zeichnen von Linien (mit Clipping und linearer Interpolation von Eckpunktwerten z.b. Farbe) sind in OpenGL sehr effizient implementiert und auch entsprechend auf die Möglichkeiten der Graphik- Hardware abgebildet. OpenGL bietet uns daher eine wichtige Bibliothek zur Erstellung von graphischen Systemen (API: application programming interface) KOBLENZ LANDAU S. Müller

30 Namenstypisierung Funktionen mit verschiedenen Parametern tragen Typ und Dimension im Namen: gl<func>1234b,ub,s,us,i,ui,f,d[v](...) 1,2,3,4: Dimension der Argumente b,ub,s,us,i,ui,f,d: Typ: GLbyte, GLubyte, etc. Sonderfall: GLclampf, GLclampd optional können Parameter auch als Vektor übergeben werden, gekennzeichnet durch das abschließende v KOBLENZ LANDAU S. Müller

31 Namenstypisierung Beispiel: glcolor34b,ub,s,us,i,ui,f,d[v](...) GLfloat f[3] = 0.0, 0.5, 1.0 ; GLubyte b[4] = 0, 127, 255, 255 ; glcolor3f( 0.0, 0.5, 1.0 ); glcolor3fv( f ); glcolor4ubv( b ); KOBLENZ LANDAU S. Müller

32 OpenGL: Punkte OpenGL setzt Primitive aus einzelnen Eckpunkten zusammen Genereller Ablauf: glbegin( GL_ ); glvertex...(...);... glend(); Vorteil: keine eigenen Datenstrukturen nötig KOBLENZ LANDAU S. Müller

33 Beispiel: Eckpunkte float fpos[3]= 10, 0, 0 ; unsigned short sx=10,sy=0,sz=0; glvertex2i( 10, 0 ); glvertex3s( sx, sy, sz ); glvertex3fv( fpos); glvertex4d( 10.0, 0.0, 0.0, 1.0 ); bestimmen alle den gleichen Punkt Homogene Koordinate wird von der Applikation in der Regel nicht verwendet. Wenn sie weggelassen wird (3D-Vektor) wird sie als 1 angenommen. KOBLENZ LANDAU S. Müller

34 Primitivspezifische Einstellungen Punkte: Größe mittels glpointsize( GLfloat size ); nicht jede Größe unterstützt, über glget() abzufragen Wenn Antialiasing abgeschaltet ist (default), dann ist der Punkt ein Quadrat von size*size Pixeln. Nicht-Integer Werte werden gerundet. gldisable(gl_point_smooth); Wenn Antialiasing eingeschaltet ist, dann wird ein Kreis gezeichnet. Nicht-Integer Werte für size werden hier nicht gerundet. glenable(gl_point_smooth); KOBLENZ LANDAU S. Müller

35 Aktivieren / Inaktivieren Viele Features müssen explizit aktiviert werden glenable( GLenum feature ); zum Inaktivieren dient dann gldisable( GLenum feature ); der Zustand kann abgefragt werden mittels glisenabled( GLenum feature ); die Konstanten können nicht verodert werden KOBLENZ LANDAU S. Müller

36 Linien Linien: Breite mittels gllinewidth( GLfloat width ); ähnlich wie Punkte nicht jede Größe möglich Wenn Antialiasing abgeschaltet ist (default), dann ist width die Breite der Linie in Pixeln (also unabhängig von Fenstergröße ). Nicht-Integer Werte werden gerundet. gldisable(gl_line_smooth); Wenn Antialiasing eingeschaltet ist, dann wird die Helligkeit der Pixel abhängig vom Bedeckungsgrad berechnet. Nicht- Integer Werte werden hier nicht gerundet. glenable(gl_line_smooth); KOBLENZ LANDAU S. Müller

37 Strichelungen Gestrichelte Linien definierbar: gllinestipple( GLint factor, GLushort pattern ); Muster aus der Binärdarstellung von pattern xaaaa 0x1010 factor vervielfacht die einzelnen Bits 0xaaaa 1 0xaaaa 3 muß mit glenable( GL_LINE_STIPPLE ); aktiviert werden KOBLENZ LANDAU S. Müller

38 void display(void) int i; /* 3. Zeile 2 Linien mit untersch. Stipple */ glenable (GL_LINE_STIPPLE); gllinewidth (1.0); glclear (GL_COLOR_BUFFER_BIT); glcolor3f (0.0, 0.0, 0.0); /* 1. Zeile rechteckige Punkte */ for (i = -9; i < 10; i ++) glpointsize(10+i); glbegin(gl_points); glend(); glvertex3f(i/10.0, 0.75,0); /* 2. Zeile Anti-aliased Punkte */ glenable(gl_point_smooth); for (i = -9; i < 10; i ++) glpointsize(10+i); glbegin(gl_points); glvertex3f(i/10.0, 0.25,0); glend(); gldisable(gl_point_smooth); gllinestipple (1, 0x0101); /* dotted */ glbegin(gl_lines); glend(); glvertex3f(-0.75, -0.25, 0); glvertex3f( 0, -0.25, 0); gllinestipple (1, 0x00FF); /* dashed */ glbegin(gl_lines); glend(); glvertex3f( 0, -0.25, 0); glvertex3f( 0.75, -0.25, 0); /* 4. Zeile 2 dicke Lin. m. untersch. Stipple */ gllinewidth (5.0); gllinestipple (1, 0x0101); /* dotted */ glbegin(gl_lines); glvertex3f(-0.75, -0.75, 0); glvertex3f( 0, -0.75, 0); glend(); gllinestipple (1, 0x00FF); /* dashed */ glbegin(gl_lines); glvertex3f( 0, -0.75, 0); glend(); glvertex3f( 0.75, -0.75, 0); glflush (); KOBLENZ LANDAU S. Müller

39 Beispiel points_lines.c points_lines.exe KOBLENZ LANDAU S. Müller

(4) Polygon Clipping. Vorlesung Computergrafik T. Grosch

(4) Polygon Clipping. Vorlesung Computergrafik T. Grosch (4) Polygon Clipping Vorlesung Computergrafik T. Grosch Wiederholung Letzte Woche Linien zeichnen 1001 1000 1010 B A E H 0001 0010 Linien Clipping 0000 Heute Cohen-Sutherland: Rechteckiges Clip-Polygon

Mehr

Kapitel 21: OpenGl 1

Kapitel 21: OpenGl 1 Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0); 50 Befehle in OpenGl Utility

Mehr

Computergrafik SS 2008 Oliver Vornberger. Kapitel 21: OpenGl

Computergrafik SS 2008 Oliver Vornberger. Kapitel 21: OpenGl Computergrafik SS 2008 Oliver Vornberger Kapitel 21: OpenGl 1 OpenGl Programming Guide 2 OpenGl 200 Befehle in OpenGL Library (geometrische Primitive, Attribute) glcolor3f(1.0,0.0,0.0); glrotatef(30.0,0.0,0.0,1.0);

Mehr

Graphische Primitive Punkte Geradenstücke (Liniensegmente) Polygone

Graphische Primitive Punkte Geradenstücke (Liniensegmente) Polygone Graphische Primitive Punkte Geradenstücke (Liniensegmente) Polygone Punkte glvertex3f (50.0, 50.0, 0.0) glvertex2f (50.0, 50.0) glvertex4f (50.0, 50.0, 0.0,1.0) GLfloat vect[3] = {50.0, 50.0, 0.0} glvertex3fv

Mehr

(3) Rasterisierung. Vorlesung Computergrafik T. Grosch

(3) Rasterisierung. Vorlesung Computergrafik T. Grosch (3) Rsterisierung Vorlesung Computergrfik T. Grosch Wiederholung Letzte Woche: Grundlgen Trigonometrie Vektorrechnung Einfche PutPiel Funktion Heute Rsterisierung Zeichnen von Linien Clipping T. Grosch

Mehr

Einführung in OpenGL. Einführung in OpenGL

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

Mehr

2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max

2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max Kapitel 5 2D-Clipping Ziel: Nur den Teil einer Szene darstellen, der innerhalb eines Fensters sichtbar ist. y max y min x min x max Abbildung 5.1: Clip-Fenster 5.1 Clipping von Linien Zu einer Menge von

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Prof. Stefan Schlechtweg-Dorendorf Hochschule Anhalt (FH) Köthen Fachbereich Informatik Wintersemester 2010/2011 1 / 27 Teil II CG-Programmierung und OpenGL 2 / 27 Inhalt 1. Computergraphik-Programmierung

Mehr

OpenGL. Kapitel Grundlagen

OpenGL. Kapitel Grundlagen Kapitel 21 OpenGL 21.1 Grundlagen OpenGL bietet eine Schnittstelle zwischen dem Anwenderprogramm und der Grafikhardware eines Computers zum Modellieren und Projizieren von dreidimensionalen Objekten. Diese

Mehr

Das OpenGL Utility Toolkit GLUT. Verwendung von GLUT

Das OpenGL Utility Toolkit GLUT. Verwendung von GLUT 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

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 7, Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 7, Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 7, 11.4.2016 Fallstudie Point-In-Polygon Algorithmus Diskretisierung: Linien zeichnen Fallstudie: Point-In-Polygon Algorithmus Annahme: abgegrenztes

Mehr

Sebastian Kurfürst

Sebastian Kurfürst Rastergrafikalgorithmen Sebastian Kurfürst s4832338@mail.inf.tu-dresden.de Proseminar Computergraphik Lehrstuhl Computergraphik und Visualisierung Institut für Software- und Multimediatechnik TU Dresden

Mehr

1.1 Verwendung von GLUT

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

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung die Computergrafik: GLUT und OpenGL. Teilnehmer und Abgaben Nachname Abeldt Brucker Dimitrova Gebhardt Goldhofer Lauber Promesberger

Mehr

Füllen von Primitiven

Füllen von Primitiven Füllen von Primitiven Basisproblem der 2D-Graphik Anwendung: füllen beliebiger Flächen (Polygone, Freiformkurven) Darstellung von Buchstaben dicke Primitive (Linien, Kreise, Kurven), Teilproblem in der

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Programmieren mit OpenGL und GLUT

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........

Mehr

7.4 Tesselierung von Polygonen

7.4 Tesselierung von Polygonen Anwendungsgebiet - OpenGL kann direkt nur einfache konvexe Polygone anzeigen - Polygone sind einfach, wenn - sie selbstdurchdringungsfrei sind - sie keine doppelten Ecken enthalten - an einer Ecke genau

Mehr

Rastergrafikalgorithmen

Rastergrafikalgorithmen Rastergrafikalgorithmen Vortrag über Rastergrafikalgorithmen im Rahmen des Proseminars Computergrafik Vortragender: Christian Vonsien Dienstag, 18. Mai 2010 Proseminar Computergrafik SS2010 - Rastergrafikalgorithmen

Mehr

Klausur Computergrafik WS 2008 / 09

Klausur Computergrafik WS 2008 / 09 Fachhochschule Gießen-Friedberg Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 27. März 2009 Klausur Computergrafik WS 2008 / 09 Personalien: Name, Vorname:...

Mehr

2.11 Clipping von Linien

2.11 Clipping von Linien 2.11 Clipping von Linien Sollen Objekte in der Bildebene innerhalb eines Fensters dargestellt werden, so wird ein Verfahren benötigt, mit dem alle außerhalb des Fensters liegenden Objektteile abgeschnitten

Mehr

Einführung in OpenGL. Thomas Kalbe 30.10.2007. Technische Universität Darmstadt. thomas.kalbe@gris.informatik.tu-darmstadt.de

Einführung in OpenGL. Thomas Kalbe 30.10.2007. Technische Universität Darmstadt. thomas.kalbe@gris.informatik.tu-darmstadt.de Einführung in OpenGL Thomas Kalbe Technische Universität Darmstadt thomas.kalbe@gris.informatik.tu-darmstadt.de 30.10.2007 3D Graphic APIs 2 / 42 API: Application Programming Interface low-level graphic

Mehr

Eine Einführung in OpenGL

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...........................

Mehr

Praktikum 4: Delegation

Praktikum 4: Delegation : Delegation 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Vererbung, abstrakte Klassen, Polymorphie, Delegation sowie das Zeichnen von UML-Klassendiagrammen.

Mehr

Übungsstunde 7 zu Computergrafik 1

Übungsstunde 7 zu Computergrafik 1 Institut für Computervisualistik Universität Koblenz 10. und 11. Dezember 2012 Inhaltsverzeichnis 1 Licht und Material Licht in OpenGL Material in OpenGL 2 in C++ Licht in OpenGL Lichtquellen In OpenGL

Mehr

Inhaltsverzeichnis. 1 Hardwaregrundlagen

Inhaltsverzeichnis. 1 Hardwaregrundlagen Inhaltsverzeichnis 1 Hardwaregrundlagen 2.4 2.5 Perspektivische 2.6 Parallele 2.7 Umsetzung der Zentralprojektion 2.8 Weitere 2.9 Koordinatensysteme, Frts. 2.10 Window to Viewport 2.11 Clipping 3 Repräsentation

Mehr

(3) Rasterisierung. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

(3) Rasterisierung. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU (3) Rasterisierung Vorlesung Computergraphik I S. Müller KOBLENZ LNDU KOBLENZ LNDU Rasterisierung Wiederholung I Trigonometrie sin, cos, tan Fläche im Dreieck Lineare lgebra Punkte und Vektoren Betrag,

Mehr

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27 Hallo Welt! für Fortgeschrittene Geometrie I Philipp Erhardt 19. Juli 2011 Philipp Erhardt Geometrie I 19. Juli 2011 1 / 27 Gliederung 1 Grundlagen 2 CCW 3 Punkt-in-Polygon 4 Pick s Theorem 5 Konvexe Hülle

Mehr

Klausur Computergrafik für Bachelor-Studierende WS 2010 / 11

Klausur Computergrafik für Bachelor-Studierende WS 2010 / 11 Fachhochschule Gießen-Friedberg Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 8. Februar 2011 Klausur Computergrafik für Bachelor-Studierende WS 2010 / 11 Personalien:

Mehr

(12) OpenGL-Pipeline. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

(12) OpenGL-Pipeline. Vorlesung Computergraphik I S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU (12) OenGL-Pieline Vorlesung Comutergrahik I S. Müller KOBLENZ LANDAU Wiederholung I Was assiert, wenn Kein glulookat verwendet wird? Kamera ist im Ursrung, Blick entlang der neg. -Achse, Rechtssstem,

Mehr

Klausur Computergrafik für Bachelor-Studierende WS 2009 / 10

Klausur Computergrafik für Bachelor-Studierende WS 2009 / 10 Fachhochschule Gießen-Friedberg Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 11. Februar 2010 Klausur Computergrafik für Bachelor-Studierende WS 2009 / 10 Personalien:

Mehr

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006

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

Mehr

Grafikprogrammierung (Echtzeitrendering)

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

Mehr

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik Universität Osnabrück, Henning Wenke, Computergrafik Universität Osnabrück, Henning Wenke, 2012-06-04 Kapitel VIII: Per Primitive Operations Primitive I 3 Primitive II Elementare grafische Grundform Besteht in OpenGL aus Folge von 1-3 Vertices

Mehr

Bitmaps. - Definition eigener Zeichenmuster - Definition eigener Schriften. Zeichnen auf Pixel- und Bitmap-Ebene

Bitmaps. - Definition eigener Zeichenmuster - Definition eigener Schriften. Zeichnen auf Pixel- und Bitmap-Ebene Bitmaps Grundlagen - Bitmaps sind rechteckige Arrays bestehend aus 0 und 1 Werten - Sie dienen als Zeichenmaske in einem rechteckigen Fensterbereich - Bei gegebner Zeichenfarbe f=(r, B, G) werden die Pixel,

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung

Mehr

Programmierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University

Programmierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 16, 2018 Standardbibliothek Datenstrukturen Algorithmen Variablen und Referenzen Aufrufkonventionen

Mehr

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU (1) Geometrie Vorlesung Computergraphik 3 S. Müller KOBLENZ LANDAU KOBLENZ LANDAU Organisatorisches Vorlesung CG 2+3 Die Veranstaltung besteht aus 2 Teilen, wobei in der Mitte und am Ende eine Klausur

Mehr

OpenGL. Rendering: (Wiedergabe, Darstellung): Erzeugg. digitaler (Pixel-)Bilder aus log.-mathem. Modell-Beschreibungen.

OpenGL. Rendering: (Wiedergabe, Darstellung): Erzeugg. digitaler (Pixel-)Bilder aus log.-mathem. Modell-Beschreibungen. OpenGL Grafik-Bibliothek mit einigen hundert Befehlen gl...() (div. Ausführungen) angeschlossener Aufsatz : OpenGL Utility Library (GLU), ca. 50 Befehle glu...() Plattform-unabhängig (Hardware, Fenster-/

Mehr

Klausur Computergrafik für Bachelor-Studierende SS Lösungshilfe

Klausur Computergrafik für Bachelor-Studierende SS Lösungshilfe Technische Hochschule Mittelhessen Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 8. August 2014 Personalien: Klausur Computergrafik für Bachelor-Studierende SS

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen XI. Rasterung Füllen von Polygonen Prof. Stefan Schlechtweg Hochschule nhalt Fachbereich Informatik Inhalt Lernziele 1. Zu lösendes Problem 2. Füllen von Pixelmengen 1. Rekursiver

Mehr

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:... ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer

Mehr

Klausur Computergrafik SS 2007

Klausur Computergrafik SS 2007 Fachhochschule Gießen-Friedberg Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 11. Oktober 2007 Klausur Computergrafik SS 2007 Personalien: Name, Vorname:... Matrikelnummer:...

Mehr

Klausur Computergrafik für Bachelor-Studierende WS 2010 / 11. Lösungshilfe

Klausur Computergrafik für Bachelor-Studierende WS 2010 / 11. Lösungshilfe Fachhochschule Gießen-Friedberg Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 8. Februar 2011 Personalien: Klausur Computergrafik für Bachelor-Studierende WS 2010

Mehr

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Ü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:

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

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,

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2 Computergraphik 1 LU (186.095) Ausarbeitung Abgabe 2 Beispiel 4... 2 CG1Object... 2 if (dobackfaceeculling && numvertexindec >=3)... 2 CG1ScanfilledPolygon CG1Polygon... 2... 2... 3 buildactivelist (int

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Übung Notendarstellung

Übung Notendarstellung Übung Notendarstellung Einführung Unsere Zeichenfläche hat einige Erweiterungen erfahren, die wir heute nutzen wollen um eine Notendarstellung zu erhalten. Insbesondere hat gibt es nun die Möglichkeit

Mehr

2.1. Konvexe Hülle in 2D

2.1. Konvexe Hülle in 2D Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S

Mehr

Spiele, Simulation, dynamische Systeme

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

Mehr

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,

Mehr

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren.

Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. Durch die Möglichkeit, Ein- und Ausgaben auf der Konsole durchzuführen, kann man auch systematisch das Verhalten von Klassen analysieren. 267 Das hier skizzierte Problem basiert auf der strategischen Entscheidung

Mehr

Einführung in die objektorientierte Programmierung mit C++

Einführung in die objektorientierte Programmierung mit C++ Prof. Dr. Thomas Klinker FB Elektrotechnik und Informatik 08. 03. 2007 Projekt im 4. Semester Elektrotechnik: Einführung in die objektorientierte Programmierung mit C++ Aufgabe 1: Schreiben Sie ein Programm,

Mehr

Klassen. C++ Übung am 02. Juni 2016

Klassen. C++ Übung am 02. Juni 2016 Klassen C++ Übung am 02. Juni 2016 Klassen - der Kern objektorientierter Programmierung - Festlegung der Daten und Funktionen einer Klasse - Deklaration als public oder private - Konstruktoren erzeugen

Mehr

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll

Mehr

Klausur Computergrafik für Bachelor-Studierende SS 2015

Klausur Computergrafik für Bachelor-Studierende SS 2015 Technische Hochschule Mittelhessen Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 27. Juli 2015 Klausur Computergrafik für Bachelor-Studierende SS 2015 Personalien:

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Vektoraddition als Java-Applet

Vektoraddition als Java-Applet Vektoraddition als Java-Applet ( Simon Winkler, Juli 2008) Warum habe ich dieses Thema ausgewählt? Die Vektoraddition ist eine äußerst wichtige mathematische Grundlage, ohne die zu beherrschen es unmöglich

Mehr

Created by Michael Kirsch & Beat Rossmy

Created by Michael Kirsch & Beat Rossmy PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK Created by Michael Kirsch & Beat Rossmy INHALT 1. Sto der Vorlesung 1. Processing Basics 2. Übung 1. Aufgabe 1 2. Strings & Arrays 2. Aufgabe 1-A 3. Klassen

Mehr

1 Strg. Strg. Attribute übernehmen: Aktivieren (X) Zeiger über dem Objekt) T-Taste zeigt Hilfskreis und Parallelen

1 Strg. Strg. Attribute übernehmen: Aktivieren (X) Zeiger über dem Objekt) T-Taste zeigt Hilfskreis und Parallelen Aktivieren (X) Zeiger über dem Objekt) T-Taste zeigt Hilfskreis und Parallelen Attribute übernehmen: KLICK Objekt vorher sichtbar durch Mouse Over Zoomen Kurztastenbefehle Lupenfunktion (y) Zoom + Zoom

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Szenegraphen, Texturen und Displaylisten. Agenda Organisatorisches Das Konzept der Szenegraphen Grundlagen Beispiel eines Szenegraphen Transformationen

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Einführung in die Programmierung Wintersemester 2017/18

Einführung in die Programmierung Wintersemester 2017/18 Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Einführung in die Programmierung

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,

Mehr

Kap 7. Funktionen und Arrays

Kap 7. Funktionen und Arrays Kap 7. Funktionen und Arrays Elementare Algorithmen Allgemein Mathematik Text Eingabe ٧ Skalarprodukt wie Allgemein Ausgabe ٧ Länge ersetzen Summation Winkel Laenge Maximum ٧ Polynome berechnen ausschneiden

Mehr

Einführung in die Programmierung Wintersemester 2010/11

Einführung in die Programmierung Wintersemester 2010/11 Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung

Mehr

Die C++ Standard Template Library Andreas Obrist

Die C++ Standard Template Library Andreas Obrist Die C++ Standard Template Library 24. 06. 2004 Andreas Obrist Was dürft Ihr erwarten? 1. Teil Das Wichtigste in Kürze über die Standard Template Library 2. Teil Praktische Beispiele Was dürft Ihr nicht

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017

Schriftlicher Test (120 Minuten) VU Einführung ins Programmieren für TM. 23. Januar 2017 Familienname: Vorname: Matrikelnummer: Aufgabe 1 (3 Punkte): Aufgabe 2 (1 Punkt): Aufgabe 3 (2 Punkte): Aufgabe 4 (4 Punkte): Aufgabe 5 (2 Punkte): Aufgabe 6 (2 Punkte): Aufgabe 7 (4 Punkte): Aufgabe 8

Mehr

Proseminar Computergrafik: OpenGL. Marcel Heckel

Proseminar Computergrafik: OpenGL. Marcel Heckel Proseminar Computergrafik: OpenGL Marcel Heckel 23.5.26 . Inhalt 1. Allgemein Was ist OpenGL Geschichte 2. Etwas 3D-Mathematik Das Koordinatensystem Vektoren Matrizen 3. Grundlegendes zu OpenGL Arbeitsweise

Mehr

Klausur Computergrafik für Bachelor-Studierende SS Lösungshilfe

Klausur Computergrafik für Bachelor-Studierende SS Lösungshilfe Technische Hochschule Mittelhessen Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 2. Oktober 2013 Personalien: Klausur Computergrafik für Bachelor-Studierende SS

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

C++ Quellcodes zum Buch Kapitel 5

C++ Quellcodes zum Buch Kapitel 5 1 HARALD NAHRSTEDT C++ für Ingenieure Einführung in die objektorientierte Programmierung Erstell am 27.04.2009 C++ Quellcodes zum Buch Kapitel 5 Beschreibung Diese Seiten enthalten den Quellcode aus dem

Mehr

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät

Mehr

(12) Wiederholung. Vorlesung Computergrafik T. Grosch

(12) Wiederholung. Vorlesung Computergrafik T. Grosch (12) Wiederholung Vorlesung Computergrafik T. Grosch Klausur 18.7. 14 16 Uhr, Hörsaal 5 (Physik) 2 Zeitstunden 8 Aufgaben Drei Aufgabentypen Übungsaufgaben Wissensfragen zur Vorlesung Transferfragen Unterschiedlicher

Mehr

Die Rasterbildtechnik

Die Rasterbildtechnik Die Rasterbildtechnik Anfänge der Computergraphik: Vektordisplays Oliver Deussen Grundlagen der Rastergraphik 1 Vorteile von Vektordisplays: - geringer Speicheraufwand (Display-Liste statt Pixelfeld) -

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/36 Datenstrukturen und Algorithmen Vorlesung 20: (K33) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/

Mehr

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung)

Computergrafik SS 2010 Henning Wenke. Kapitel 21: OpenGL 3.1 (Fortsetzung) Computergrafik SS 2010 Henning Wenke Kapitel 21: OpenGL 3.1 (Fortsetzung) 1 OpenGL Aufgaben der GL-Befehle Konfigurieren der Graphics Pipeline Datenübergabe an Server Steuern des Datenflusses Java OpenGL

Mehr

- Für die beiden zu überblendenden Farben (source und destination) werden Blending-Faktoren besimmt (S r

- Für die beiden zu überblendenden Farben (source und destination) werden Blending-Faktoren besimmt (S r 3.2 Blending Anwendung - Kombination der Farbinformation eines neu zu zeichnenden Objekts (Source) mit der Farbinformation, die bereits im Framebuffer gespeichert ist (Destination) - Darstellung teilweise

Mehr

7.1 Polygon Offset. Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit:

7.1 Polygon Offset. Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit: 7.1 Polygon Offset Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit: - Polygone sollen einmal als Fläche und einmal in Wireframe-Darstellung

Mehr

Hochschule München, FK03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1

Hochschule München, FK03 SS Masterstudiengang Technische Berechnung und Simulation. Programmierung von CAx-Systemen Teil 1 Hochschule München, FK03 SS 2018 Masterstudiengang Technische Berechnung und Simulation Programmierung von CAx-Systemen Teil 1 Name Vorname Matrikelnummer Aufgabensteller: Hilfsmittel: Dr. Reichl, Dr.

Mehr

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer   144 Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.

Mehr

Wo stehen wir? Geometrie Transformationen Viewing Beleuchtungsmodelle

Wo stehen wir? Geometrie Transformationen Viewing Beleuchtungsmodelle Wo stehen wir? Geometrie Transformationen Viewing Beleuchtungsmodelle Und nun? Transparenz Anti-Aliasing Dunst, Nebel Computer Graphik R 3 Projektion N 2 Pixel Ops C Objektraum Bildraum Farbraum Blending

Mehr

Computergrafik 1 Übung

Computergrafik 1 Übung Prof. Dr. Andreas Butz Dipl.-Medieninf. Hendrik Richter Dipl.-Medieninf. Raphael Wimmer Computergrafik 1 Übung Meshes http://codeidol.com/img/illustrator-cs/54084xfg1001_0.jpg 6 1 Primitive 2 2D-Objekte

Mehr

Pfadgenerierung/Polygone/Polygonoffsetting

Pfadgenerierung/Polygone/Polygonoffsetting Pfadgenerierung/Polygone/Polygonoffsetting Jan Stenzel 17. Juni 2015 Proseminar: 3D-Druck-Verfahren 1 / 42 Gliederung I 1 Polygone Definition konkav, konvex und überschlagen 2 Clipping Was kann passieren?

Mehr

Verkettete Datenstrukturen: Listen

Verkettete Datenstrukturen: Listen Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).

Mehr

Klausur Computergrafik für Bachelor-Studierende SS 2013

Klausur Computergrafik für Bachelor-Studierende SS 2013 Technische Hochschule Mittelhessen Prof. Dr.-Ing. A. Christidis Fachbereich Mathematik, Naturwissenschaften und Informatik 2. Oktober 2013 Klausur Computergrafik für Bachelor-Studierende SS 2013 Personalien:

Mehr