170 likes | 318 Views
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
E N D
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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? Costruzione di Interfacce
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) Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
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 Costruzione di Interfacce
Windows Vista (WPF - Avalon) Costruzione di Interfacce
Gnome (Cairo) Costruzione di Interfacce
MacOS X (Quartz) Costruzione di Interfacce
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… Costruzione di Interfacce
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 Costruzione di Interfacce