Costruzione di Interfacce
Antonio Cisternino
19/9/2005
Syllabus
 Introduzione a C++
 Sistemi grafici
 Fondamenti di grafica
 Modello model-view-controller
 Programmazione ad eventi
 Sistemi di riferimento e trasformazioni geometriche
 Librerie e framework per la grafica
 Programmazione di interfacce grafiche
 Interfacce Web
 Cenni alla grafica 3D
Lez. 1 - 19/9/2005
Costruzione di Interfacce
2
Introduzione a C++
C++ è un linguaggio importante nel modo
delle interfacce grafiche
Gli oggetti coinvolti sono spesso grandi, e
richiedono la manipolazione di grandi
quantità di memoria
La possibilità di gestire esplicitamente la
memoria unita al supporto OOP rende
C++ un linguaggio rilevante in questo
ambito
Lez. 1 - 19/9/2005
Costruzione di Interfacce
3
Sistemi grafici
La conoscenza della struttura di un sistema
grafico è importante per capire la struttura dei
famework
Negli ultimi anni i sistemi grafici sono divenuti
sempre più complessi, e la loro evoluzione sta
condizionando quella del software
La GPU ormai affianca la CPU
I dispositivi di I/O stanno crescendo e
differenziandosi
Lez. 1 - 19/9/2005
Costruzione di Interfacce
4
Fondamenti di grafica
Ma come funziona un sistema a finestre?
Quali sono le operazioni primitive che
servono a realizzarne le funzionalità di
base?
Come si possono trasformare entità
geometriche come linee e curve in punti?
E come si possono descrivere?
Lez. 1 - 19/9/2005
Costruzione di Interfacce
5
Sistemi di riferimento e
trasformazioni geometriche
I sistemi grafici fanno ampio uso di sistemi
di coordinate (schermo, stampante,
finestra, …)
Spesso è necessario effettuare conversioni
da uno all’altro
È anche importante saper trasformare
oggetti o spostarli (es.: traslazione,
rotazione, scalatura)
Lez. 1 - 19/9/2005
Costruzione di Interfacce
6
Programmazione ad eventi
Il modello ad eventi è alla base della
programmazione delle interfacce grafiche
Questo paradigma consente alla GUI di
coordinare l’accesso ai dispositivi di input
e output
Il sistema grafico è responsabile per
notificare eventi alle varie applicazioni
Lez. 1 - 19/9/2005
Costruzione di Interfacce
7
Modello model-view-controller
Le interfacce grafiche sono naturalmente
basate su componenti grafici (bottoni,
liste, alberi, …)
Questi componenti, e le applicazioni che le
usano seguono un design pattern noto col
nome di Model-View-Controller
La sua comprensione è fondamentale per
essere in grado di estendere framework
grafici
Lez. 1 - 19/9/2005
Costruzione di Interfacce
8
Librerie e framework per la grafica
La conoscenza di librerie e framework per
la programmazione di interfacce grafiche è
importante
La loro struttura è simile
Si vogliono isolare i concetti base che
stanno dietro ai framework disponibili
Evoluzione dalla grafica raster a quella
vettoriale
Lez. 1 - 19/9/2005
Costruzione di Interfacce
9
Interfacce Web
Il browser viene usato sempre più spesso
per realizzare interfacce grafiche
La sua capacità di mischiare testo, grafica,
e interattività lo rende ideale in numerose
applicazioni
Un’applicazione si basa su tre elementi:
CSS, DHTML, e JavaScript
Altre tecnologie coinvolte: XML, XSLT
Lez. 1 - 19/9/2005
Costruzione di Interfacce
10
Cenni alla grafica 3D
Come funzionano i sistemi grafici 3D?
Elementi fondamentali: estensione della
geometria 2D al 3D
Il modello Pinhole Camera
Lo scenegraph
Principali problematiche: illuminazione,
geometria, shading
VRML e JavaScript
Lez. 1 - 19/9/2005
Costruzione di Interfacce
11
What’s next?
I sistemi grafici sono sempre in profonda
evoluzione
Anche le metafore stanno cambiando per
adeguarsi ad interfacce di crescente
complessità
I principali sistemi grafici stanno
evolvendo verso:
Grafica vettoriale
Unione tra grafica 2D e grafica 3D
Lez. 1 - 19/9/2005
Costruzione di Interfacce
12
Windows Vista (WPF - Avalon)
Lez. 1 - 19/9/2005
Costruzione di Interfacce
13
Gnome (Cairo)
Lez. 1 - 19/9/2005
Costruzione di Interfacce
14
MacOS X (Quartz)
Lez. 1 - 19/9/2005
Costruzione di Interfacce
15
Bibliografia
Testi:
 R. Scateni, P. Cignoni, C. Montani, R. Scopigno -
Fondamenti di grafica tridimensionale interattiva,
McGraw-Hill, 2005, ISBN: 88 386 6215-0
 Fondamenti di Computer graphics G. Attardi,
Università di Pisa, SEU, 1998.
Consultazione
 C. Petzold, Programmare Windows con C#, Microsoft
Press, 2001, ISBN: 0-7356-1370-2
 More to come…
Lez. 1 - 19/9/2005
Costruzione di Interfacce
16
Modalità di esame
Durante il corso saranno realizzati due
progetti:
MidTerm: realizzazione di un controllo grafico
in C++
FinalTerm: realizzazione di un’applicazione
grafica
Chi ha già seguito l’anno scorso? Può fare
l’esame di Paolo fino alla sessione
invernale
Lez. 1 - 19/9/2005
Costruzione di Interfacce
17
Scarica

1 - Introduzione al corso