I terreni da visualizzare potranno essere dati o come griglia regolare di quote, oppure come triangolazione con valori di quota associati ai vertici.
Ai fini della visualizzazione, le griglie sono ridotte a triangolazioni suddividendo ogni maglia rettangolare in due triangoli. Dunque, si tratta di visualizzare triangolazioni.
Il sistema deve supportare:
I due tipi di file si distinguono dall'estensione del loro nome, che e'
Inoltre l'utente deve poter scegliere il colore di sfondo.
Il sistema prevede un fattore che controlla la scalatura delle z
in rapporto alle x ed y.
Inizialmente tale fattore viene stabilito autonomamente dal sistema
nel modo piu' soddisfacente possibile (per es. tale che l'ampiezza
dell'intervallo coperto sulle z dal terreno sia confrontabile come
ordine di grandezza con l'ampiezza dell'intervallo coperto su x ed y).
Il sistema fornisce poi strumenti all'utente per modificare tale
fattore di scala.
Altro
Il sistema dovra' fornire una o piu' funzioni aggiuntive a scelta degli
studenti che lo realizzano.
Elenco qui una serie di idee.
Curve di livello
Visualizzazione di curve di livello.
Considerare una serie di quote, calcolare i
segmenti intersezione fra i triangoli del terreno ed i piani
orizzontali alle quote stabilite, e visualizzare tali segmenti
Interrogazioni spaziali
Data un'entita' (punto, spezzata poligonale)
determinare i triangoli intersecati e restituire l'altezza del terreno
in corrispondenza del punto o lungo la linea.
Modifica del terreno
Permettere all'utente la selezione di vertici o
insiemi di vertici del terreno ed aumentare / diminuire la
quota di tali vertici deformando conseguentemente il terreno.
Si puo' anche pensare di propagare la deformazione in modo graduale
dal vertice esplicitamente modificato ai suoi vertici
vicini fino ad una certa distanza topologica.
Si puo' anche pensare di utilizzare una spezzata per indicare i
vertici le cui quote devono essere modificate, in tal modo per
es. e' possibile scavare una valle nel terreno o alzare una
catena montuosa
Questo perche' in modalita' di visione "da dentro" e' necessario mantenere traccia del triangolo in cui cade il punto di vista al fine di confrontare la quota del triangolo con quella del punto di vista ed accertarsi che il punto di vista sia sopra al triangolo.
Il modo piu' facile per mantenere il triangolo corrente e', ad ogni movimento su x,y, controllare se si attraversa un lato sconfinando in uno dei tre triangoli adiacenti.
La stessa struttura si puo' usare per la triangolazione derivata da una griglia.
Oppure, la struttura dati usata per griglie potra' essere
una semplice matrice rettangolare di quote.
Sia i triangoli che le loro relazioni di adiacenza si possono
ottenere mediante manipolazione di indici.
Per ogni coppia di indici i,j (0> i> M, e 0> j> N)
ci sono due triangoli
in una (fissata a piacere) delle due configurazioni:
[i-1,j-1] --------- [i,j-1] [i-1,j-1] --------- [i,j-1] | / | | \ | | / | | \ | | / | | \ | | / | | \ | [i-1,j] --------- [i,j] [i-1,j] --------- [i,j]