Informazioni generali

  • I compiti dovranno essere inviati per email all’indirizzo apaoluzzi@gmail.com, con intestazione [grafica 2010] compito 4

  • I file di ogni studente dovranno essere contenuti dentro un archivio zip, denominato con il codice-studente di Roma Tre (es 123456.zip). Gli studenti ancora sprovvisti di codice lo invieranno come cognome.zip (NB: .zip, non .rar)

  • Lo studente dovrà realizzare piccoli programmi denominati come segue, e per ciascuno scrivere alcune righe di documentazione in un file py corrispondente:

    • risposta1.py,

    • risposta2.py, etc.,

    • doc1.py,

    • doc2.py, etc.

  • Ogni file _deve contenere una sola docstring (ovvero un commento delimitato da tripli doppi apici) recante

    • cognome, nome, matricola_ nella prima riga;

    • una seconda riga vuota;

    • la descrizione del codice del corrispondente esercizio nelle righe successive.

  • Ogni programma deve aprire una finestra corrispondente al modello richiesto.

  • Il termine di consegna è tassativo. I compiti inviati dopo la scadenza non saranno presi in considerazione.

Preliminari

Il compito richiede di generare in OpenGL il modello geometrico 3D delle strade di una piccola porzione della città.

  1. Il modello della zona di residenza potrà consistere in una versione semplificata a piacere della vista di Google Maps.

  2. I modelli prodotti dovranno contenere almeno 10 strade.

  3. L’archivio .zip del compito dovrà contenere una immagine della planimetria e una immagine da satellite della zona, in formato .png (NON altri formati), con nomi rispettivamente: mappa.png e satellite.png.

  4. I compiti privi di tali immagini NON saranno corretti.

Come sempre, la valutazione degli esercizi sarà inversamente proporzionale al numero di linee di codice scritte … :o)

ESERCIZI

  1. Definire le linee d’asse delle strade del proprio comprensorio come POLYLINE 2D pyplasm e visualizzarle come STRUCT con una invocazione VIEW.

  2. Scrivere una funzione Python denominata lineStripToQuadStrip che

    • accetti in ingresso una lista di punti visualizzabile come LINE_STRIP,

    • produca in uscita una lista di punti visualizzabile come QUAD_STRIP.

  3. Realizzare una vista statica delle strade del proprio comprensorio con un semplice programma OpenGL, utilizzando primitive QUAD_STRIPE OpenGL. Si utilizzi per la costruzione del modello la precedente funzione lineStripToQuadStrip applicata ai dati usati nell’esercizio 1.

  4. Si vuole realizzare la estrusione di una QUAD_STRIP in una striscia solida di altezza costante. Scrivere una funzione Python denominata quadStripToSolidStrip che

    • accetti in ingresso una lista di punti costituenti una QUAD_STRIP OpenGL,

    • produca in uscita 4 QUAD_STRIP OpenGL, corrispondenti a (a) strip inferiore, (b) strip superiore e (c) strip laterale destra, (d) strip laterale sinistra di una descrizione solida della strada.

  5. Visualizzare in OpenGL il graticcio di solidi 3D corrispondenti alle strade del comprensorio.