37
Prof. Dr. Andreas Butz | Prof. Dr. Ing. Axel Hoppe Dipl.-Medieninf. Dominikus Baur Dipl.-Medieninf. Sebastian Boring Übung: Computergrafik 1 MDIs in Qt Farbmodelle

Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

Prof. Dr. Andreas Butz | Prof. Dr. Ing. Axel Hoppe

Dipl.-Medieninf. Dominikus BaurDipl.-Medieninf. Sebastian Boring

Übung: Computergrafik 1

MDIs in QtFarbmodelle

Page 2: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

MDIs

2

Page 3: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 3

Multiple Document Interfaces

Multiple Document Interfaces beschreiben Interfaces in denen mehrere Dokumente innerhalb eines Hauptfensters angezeigt werden (Gegenteil: Single Document Interfaces)

Vorteile:

Alle geöffneten Dokumente können gleichzeitig maximiert/minimiert werden

Anordnungen wie “Tile” oder “Cascade” möglich

Nachteile:

Möglichkeiten des Betriebssystems zur Taskübersicht können nicht genutzt werden

Alternative: Tabbed Document Interfaces (Browser)

(Quelle: http://www.pixelcentric.net/article.php?art=docs)

Page 4: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 4

MDIs in Qt

Qt bietet direkte Unterstützung für MDIs mit der QMdiArea (ehemals QWorkspace) Klasse

Im Folgenden:

Ein MDI für Textdateien in Qt

(Beispiel aus dem Qt SDK)

Zu finden:

OSX: /Developer/Examples/Qt/mainwindows/mdi

Windows: C:\Qt\2009.02\qt\examples\mainwindows\mdi

(Quelle: http://doc.trolltech.com/4.2/mainwindows-mdi.html)

Page 5: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 5

MDIs in Qt

(Quelle: http://doc.trolltech.com/4.2/mainwindows-mdi.html)

Page 6: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 6

Resources

(Quelle: http://doc.trolltech.com/4.0/resources.html)

Nicht-Quellcodedateien können als Resourcen in Qt-Projekte eingebunden werden

Vorteile:

Direkte Verfügbarkeit im Quellcode

Keine Probleme mit Pfadangaben

Qt-Resourcen befinden sich in Resource Collection Files (.qrc)

Resourcendateien müssen in der Projektbeschreibung (.pro) auftauchen:

Page 7: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 7

Resources

(Quelle: http://doc.trolltech.com/4.0/resources.html)

Erstellen von Resource Collection Files in QtCreator: Rechtsklick Projekt -> “Add New”

“Resource File”

Ressourcen erhalten “Prefixes” umProblemen mit gleichen Dateinamen aus dem Weg zu gehen

Zusätzlich erhält jede Ressource noch den jeweils relativen Pfad zum Projekt (hier: “images/”)

Ressourcen werden im Quelltext mit “:Pfad/Dateiname” angesprochen

(Beispiel: “images/copy.png” =>“:/images/copy.png”)

Page 8: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 8

MDIs in Qt

(Quelle: http://doc.trolltech.com/4.2/mainwindows-mdi.html)

Page 9: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 9

MDIs in Qt

(Quelle: http://doc.trolltech.com/4.2/mainwindows-mdi.html)

Page 10: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 10

MDIs in Qt

Page 11: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 11

MDIs in Qt

Page 12: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 12

MDIs in Qt

mainwindow.cpp

Page 13: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 13

QMdiArea

(Quelle: http://doc.trolltech.com/4.5/qmdiarea.html)

QMdiArea ist ein Window Manager der QMdiSubWindows als Objekte enthält Jedes dieser QMdiSubWindows enthält wiederum ein beliebiges QWidget

Durch Aufruf von QMdiArea::addSubWindow(QWidget*) wird das übergebene Widget automatisch in ein QMdiSubWindow verpackt und in die QMdiArea eingefügt

QMdiSubWindows können auch manuell erstellt, mit setWidget(QWidget*) mit einem Widget versehen und ebenfalls mit addSubWindow() hinzugefügt werden

Wir arbeiten im Folgenden mit QTextEdit Widgets

QWidget

QMdiSubWindow

QWidget

QMdiSubWindow

QMdiArea

Page 14: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 14

MDIs in Qt

mdichild.h

Page 15: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 15

MDIs in Qt

mdichild.cpp

Page 16: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 16

MDIs in Qt

mdichild.cpp

Page 17: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 17

MDIs in Qt

mdichild.cpp

Page 18: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 18

MDIs in Qt

mdichild.cpp

Page 19: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 19

QSignalMapper

QSignalMapper ist eine Klasse, die Signale von identifizierbaren Klassen zusammenfügt und an eine andere Methode weitergibt

Dabei lassen sich auch zusätzliche Parameter, die an den Zielslot weitergereicht werden, definieren (mit setMapping)

QSignalMapper hat ein Signal mapped, das entweder int, QString, QWidget oder QObject übergibt

Page 20: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 20

MDIs in Qt

mainwindow.cpp

Page 21: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 21

MDIs in Qt

Page 22: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 22

MDIs in Qt

mainwindow.cpp

Page 23: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 23

MDIs in Qt

mainwindow.cpp

mdichild.cpp

Page 24: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 24

QMdiArea Subwindows

QMdiArea bietet verschiedene Möglichkeiten an, Subwindows automatisch anordnen zu lassen und zwischen ihnen zu navigieren

Ein Subwindow lässt sich mit setActiveSubWindow(QMdiSubWindow*) aktivieren (Fokus!)

closeActiveSubWindow() schliesst das aktive Fenster, closeAllSubWindows() schliesst alle Fenster

activateNextSubWindow() und activatePreviousSubWindow() gehen zum nächsten bzw. vorherigen Fenster

subWindowList() gibt eine QList<QMdiSubWindow*> zurück die alle Fenster enthält

Page 25: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 25

QMdiArea Subwindows Layout

QMdiArea enthält zwei vorgegebene Layouttypen für die enthaltenen Fenster: Cascade: cascadeSubWindows() ordnet die Fenster kaskadenförmig

an

Tile: tileSubWindows() versucht den vorhandenen Platz im Hauptfenster möglichst gut auszunutzen

Normal Cascade Tile

Page 26: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 26

MDIs in Qt

mainwindow.cppcreateActions()

Page 27: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 27

MDIs in Qt

Page 28: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 28

MDIs in Qt

Page 29: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

Farbmodelle

29

Page 30: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 30

Farbspezifikation und Farbräume

Farbmodell: Spezifikation eines 3D-Koordinaten-systems und einer Untermenge davon, in der alle sichtbaren Farben eines bestimmten Farbbereiches (Gammut) liegen.

CIE-Diagramm und Bildschirmgammut

Page 31: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 31

Farbspezifikation und Farbräume

Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika von Ausgabegeräten. Beispiele: RGB- und CMY-Modell

Perzeptionsorientierte Farbmodelle: Gleiche Abstände im Farbraum korrespondieren zu (etwa)

gleichen Abständen in der Farbwahrnehmung. Nutzung von physiologischen Größen: Farbton, -sättigung, ­

helligkeit Beispiele: HLS- und HSV-Modell

Hardwareorientierte Modelle sind unerlässlich; perzeptionsorientierte für die Farbeingabe wünschenswert. → Transformation notwendig.

Page 32: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 32

Hardwareorientierte Farbmodelle

RGB-Farbmodell

G

RB

(0, 0, 0)

(0, 1, 0) (1, 1, 0)

(1, 1, 1)

(1, 0, 1)(0, 0, 1)

(0, 1, 1)

(1, 0, 0)

CMY-Farbmodell

M

CY

(0, 0, 0)

(0, 1, 0) (1, 1, 0)

(1, 1, 1)

(1, 0, 1)(0, 0, 1)

(0, 1, 1)

(1, 0, 0)

Page 33: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009 33

Perzeptionsorientierte Modelle: HSV

Hue, Saturation, Value Hue – Winkel um vertikale

Achse, 0° entspricht rot Änderung der Sättigung

0 … 1 Helligkeit entspricht dem

Schwarzanteil Beispiel: gesättigtes

dunkelblau: H = 225°, S = 100 %, V = 100 %.

V

H

S

Page 34: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

Hue, Saturation, Lightness Strategie von Malern: nimm

reines Pigment (H), Weiß dazu (S), Schwarz dazu (1 – L)

Komponenten nicht unabhängig voneinander

Graustufen: S = 0 Voll gesättigte Farben: L = 0,5, S = 1

L

H

S

Perzeptionsorientierte Modelle: HSL

34

Page 35: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

Konvertierung HSL in RGB

35

( ) ( )

.=

=

=

=

31

31

31

21

210

61

61

62

,,,,

3

)cos(2

)sin(

21

1

IMMBGR

LI

HSMHSM

Page 36: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

Konvertierung RGB in HSL

36

3

arctan

61

61

61

61

61

61

610

62

21

21

2

1

IL

MMS

MM

H

=

+=

=

−−

.=( ),, 21 IMM

( ),, BGR

Page 37: Übung: Computergrafik 1€¦ · Übung Computergrafik 1 – SoSe 2009 06/05/2009 31 Farbspezifikation und Farbräume Hardwareorientierte Farbmodelle: Motiviert durch die Charakteristika

06/05/2009Übung Computergrafik 1 – SoSe 2009

Literatur

Weiterführende Literatur:

• Jasmin Blanchette, Mark Summerfield: “C++ GUI Programming with Qt 4”, ISBN-13: 978-0132354165 Erste Edition kostenlos online: http://www.qtrac.eu/C++-GUI-Programming-with-Qt-4-1st-ed.zip

• http://doc.trolltech.com/4.5/• http://www.qtsoftware.com/products/

37