Informazioni generali

  • A ciascuna delle domande corrisponde una frazione del punteggio complessivo. Si consiglia quindi di rispondere al maggior numero di esse.

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

  • 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

  • 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 file rispostai.yy deve terminare con una istruzione VIEW() funzionante. Se questa non apre una finestra corrispondente al modello richiesto, la risposta non sarà presa in considerazione.

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

  • l’ambiente grafico da utilizzare (per chi non lo avesse già installato) è disponibile all’indirizzo http://www.dia.uniroma3.it/~paoluzzi/plasm502/download/plasm_314_2/

  • Ogni variazione dalle presenti specifiche sarà adeguatamente sanzionata in termini di punteggio.

Preliminari

Il compito richiede di generare il modello geometrico 3D di una piccola porzione della città. A questo scopo lo studente dovrà indicare come commento all’inizio della risposta 1 il proprio luogo di residenza, scaricare da Google Maps una planimetria centrata su di questa e indicante la posizione della residenza, e utilizzarla per generare una lista di polylines 2D relative agli edifici e alle strade.

Le coordinate relative potranno essere rilevate con un metodo qualsiasi a scelta dello studente, anche riportando a mano libera su foglio quadrettato un disegno (somigliante :o) dell’area …

Requisiti

  1. Il modello della zona di residenza potrà consistere in una versione semplificata a piacere della vista di Google Maps. Si consiglia di trovare un giusto compromesso tra complessità della descrizione e requisiti di tempo a disposizione (24 h) per lo sviluppo …

  2. I modelli prodotti dovranno contenere almeno 10 strade e almeno 40 edifici. Si scelga quindi di conseguenza la scala della vista da utilizzare.

  3. L’archivio .zip (NON .rar) 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, come generate dai corrispondenti bottoni di Google Maps nella stessa vista della zona.

  4. I compiti che risultassero privi di tali immagini NON saranno corretti. Si consiglia pertanto di generarle e salvarle SUBITO nella cartella del compito, da denominare con il proprio numero di matricola (e NON con altri nomi).

Esercizi

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

  1. Visualizzare le curve 1D di bordo (lineari o di grado superiore, come utile o necessario) utilizzate per rappresentare una mappa stradale semplificata della zona. (Consiglio: non preoccuparsi degli incroci. Modellare ogni stada come se fosse isolata …)

  2. Visualizzare il graticcio di superfici 2D generate dalle due curve di bordo di ogni strada.

  3. Visualizzare l’insieme di polilinee che rappresentano l’ingombro degli edifici (principali) insieme al graticcio stradale.

  4. Scrivere una funzione Python per trasformare automaticamente i dati visualizzati nell’esercizio precedente in un insieme di poligoni 2D.

  5. Trasformare i precedenti poligoni in modelli 3D (di altezza costante o variabile --- a piacere) e produrre un modello solido della zona che contenga:

    • una base parallelepida di piccolo spessore;

    • il graticcio 3D delle strade

    • l’insieme degli edifici

Esempio di vista

mappa.png
Figure 1: File mappa.png
satellite.png
Figure 2: File satellite.png