Grafici 3D
Questa sezione raccoglie lo strumento di visualizzazione 3D di PortLAB (func3d) e le sue pagine di riferimento. Lo strumento disegna nel browser, in WebGL, funzioni analitiche e dati numerici di varia natura: superfici, nubi di punti, campi vettoriali, serie temporali animate. Questa pagina fa da manuale introduttivo.
Che cos'è
func3d è un editor interattivo di scene 3D orientato ai dati di ricerca: si compongono una o più serie (funzioni o dataset), se ne controllano aspetto, colore e scala, e si esplora la scena con il mouse (rotazione orbitale, zoom, pan). Il rendering usa three.js (WebGL) e resta fluido anche con griglie fitte e migliaia di punti. Tutto avviene nel browser: nessun dato lascia la pagina, salvo quando si usano i dataset amministrati sul database del portale.
Tipi di serie
| Tipo | Sorgente | Descrizione |
|---|---|---|
| Superficie analitica | funzione z = f(x, y) | Funzioni predefinite con parametri regolabili (Sinc, Gaussiana, Rosenbrock, Ackley, Bessel J0...); le superfici chiuse (ellissoide, toroide, iperboloide...) sono disegnate con i due rami superiore e inferiore. |
| Superficie parametrica | funzione (u, v) → (x, y, z) | Oggetti non esprimibili come z(x,y): armoniche sferiche e orbitali ibridi, nastro di Möbius, tori annodati, bottiglia di Klein, superfici minime (catenoide↔elicoide), superfici di rivoluzione; proporzioni reali, colore per quota o per parametro u/v. |
| Curva parametrica | funzione t → (x, y, z) | Curve che possono passare più volte sopra lo stesso punto del piano — elica, nodo trifoglio, traiettoria di Lorenz — e che quindi nessun campo di quota saprebbe rappresentare. Il colore segue il parametro t, che mostra anche il verso di percorrenza; spessore della linea in pixel reali. |
| Piano immagine | immagine del registro | Un rettangolo texturizzato su uno dei tre piani coordinati, spostabile lungo la propria normale: serve a mettere una foto, una mappa o una scansione accanto ai dati, alla quota giusta. Da non confondere con il drappeggio, che stende l'immagine sulla superficie. |
| Superficie da dati | dataset (griglia o punti sparsi) | I dati vengono resi campionabili da un metodo di interpolazione (11 metodi: da nearest e IDW a RST, kriging e natural neighbor) e disegnati come superficie continua. |
| Nube di punti | righe [x, y, z, c] o [x, y, z, c₁, c₂] | Ogni punto ha un valore associato c che ne determina il colore; con la doppia codifica un secondo valore c₂ ne determina la dimensione. |
| Campo vettoriale (quiver) | righe [x, y, z, u, v, w] | Frecce 3D con punta a cono: lunghezza proporzionale al modulo, colore dal modulo sulla colormap, scala regolabile. |
| Serie temporale | dataset a frame | Griglie o nubi che evolvono nel tempo: slider dei frame, Play/Pausa con velocità regolabile e, per le nubi, traiettorie con coda sfumata. |
Opzioni di visualizzazione
- Colore: colormap predefinite (viridis, magma, turbo, coolwarm...) o personalizzate con il gradient designer (stop di colore e opacità, in una finestra modale: nella colonna laterale gli stop non avrebbero spazio); scale colore per serie lineare, logaritmica o divergente, con eventuale clamp min/max; colorbar per serie con numero di tick regolabile e legenda della dimensione per le nubi a doppia codifica.
- Superficie: modalità superficie/wireframe (spessore linee reale via fat lines), opacità, scala z per serie.
- Assi e riquadro: etichette dei tick in valori dato reali, range di vista per asse, piani-griglia XY/XZ/YZ con passo e colore, sfondo, titolo e legenda trascinabili.
- Intervallo visibile: sei limiti (uno per estremo di ciascun asse) tagliano la vista in una scatola, senza toccare i dati: serve a guardare dentro una superficie chiusa o a isolare una fascia di quote. Assi e griglie restano interi, così il riferimento non si perde, e l'interfaccia avvisa quando un taglio è attivo — una superficie tagliata senza avviso sembrerebbe un difetto del disegno.
- Isolinee e bande: isocurve di livello sulla superficie e/o proiettate sul piano base, con livelli automatici (N tra minimo e massimo) o lista personalizzata; opzione riempimento a bande (superficie a gradini + mappa riempita sul piano base).
- Sezione 2D: taglio del dominio (x = cost, y = cost o segmento arbitrario) con profilo delle superfici visibili in un pannello 2D collegato, indicatore del piano di taglio nel 3D e crosshair con i valori. Dettagli nella pagina Analisi dati.
- Scala colore condivisa: un interruttore impone a tutte le superfici gli stessi estremi (l'unione dei loro intervalli, oppure due valori scritti a mano). Serve a confrontare: con scale diverse lo stesso colore significa due valori diversi, e il confronto a vista è una bugia. Nubi di punti e campi vettoriali conservano la propria scala.
- Tematizzazione per un'altra grandezza: la forma resta la quota, il colore può venire da un'altra colonna del dato — una concentrazione, una data, un errore di misura. La colonna viene interpolata sulla stessa griglia e con lo stesso metodo della quota, e la legenda dice di quale grandezza parla.
- Formati numerici: oltre a fixed, scientifico, SI, locale e percentuale
c'è il modo sprintf, con il pattern scritto per esteso
(
%+.1f,%.2e,%d m): la stessa grammatica degli altri grafici del portale, disponibile sui tick dei tre assi e sulle etichette delle legende. - Scena: la scheda Scena delle Impostazioni generali raccoglie tutto ciò che non appartiene a una singola serie — comandi del mouse (rotazione, zoom, pan, inerzia), camera (campo visivo e distanza), luci (ambiente e direzionale), carattere tipografico distinto per titolo, legenda e assi, opacità delle etichette, bussola degli assi in un angolo. Un pulsante riporta tutto ai valori predefiniti leggendoli dal modulo stesso, senza duplicati nel codice.
- Modo colore: gradiente (la colormap continua), tinta unita (un solo colore, utile per confrontare due superfici sovrapposte) e classi, con i metodi di classificazione usuali della cartografia tematica: natural breaks (Jenks, ottimo esatto), intervalli uguali, quantili, deviazione standard, numeri tondi, logaritmica, passo fisso. La tabella delle classi mostra estremi e conteggi. Si può anche scegliere quale coordinata decide il colore (la quota z, oppure x o y). Cambiare colore non ricostruisce la superficie: i vertici vengono ricolorati in posto, quindi la risposta è immediata anche su griglie fitte.
- Animazione temporale: slider dei frame, Play con fps regolabile, frame precedente/successivo, traiettorie (coda) per le nubi.
Importare dati
Dal pannello Importa/Esporta si caricano dati propri in formato CSV/TSV (da file o incollati dagli appunti): il parser riconosce da solo separatore e separatore decimale (anche il CSV italiano con punto e virgola e virgola decimale) e propone la mappatura delle colonne sui ruoli x, y, z, c, c₂, t, gruppo, u, v, w. A seconda dei ruoli scelti nascono superfici, nubi, campi vettoriali o serie temporali, anche multiple (colonna gruppo). I dataset amministrati, salvati sul database del portale, compaiono invece direttamente tra le serie disponibili in base al proprio profilo (vedi Funzioni e serie dati).
Esportare e condividere
- PNG ad alta risoluzione (fattore di scala), completo di colorbar e legende;
- CSV dei dati correnti (griglia campionata o punti del frame corrente);
- WebM: registrazione video dell'animazione temporale, legenda inclusa;
- JSON di configurazione (esporta/importa l'intero stato della scena);
- SVG della scena con gli elementi leggibili in forma vettoriale: titolo, etichette degli assi, valori, riquadro della legenda e colorbar escono come testo e gradienti, non come pixel — si aprono in Inkscape o Illustrator, si correggono e si stampano a qualunque dimensione. La superficie 3D resta un'immagine incorporata (sono decine di migliaia di triangoli ombreggiati: in vettoriale peserebbe megabyte e verrebbe peggio), ma chi quei megabyte li vuole ha la casella Scena in vettoriale, che disegna anche i triangoli;
- SVG del profilo di sezione: il taglio 2D esportato come disegno vettoriale, assi e quote comprese;
- CSV del registro misure: tutte le misure prese sul grafico (distanze, dislivelli, pendenze, volumi) con il loro contesto;
- Link condivisibile: lo stato completo compresso nell'URL — chi apre il link rivede la stessa scena, vista compresa.
Analisi dei dati
La modalità analisi consente di leggere i valori reali sul grafico: marcatore con snapping (vertice, baricentro, griglia, direzione bloccata), tooltip al passaggio del mouse, evidenziazione di triangoli e isocurve, sezione 2D collegata. Il riferimento completo è nella pagina Analisi dati.
Amministrazione dei dati
Le funzioni e i dataset built-in vivono nel codice (file JavaScript versionati); i dataset e le funzioni amministrate (espressioni scritte dall'amministratore direttamente nella pagina func3d) stanno sul database e si gestiscono dalla console dedicata (gest → database → Dati func3d): creazione e modifica dei payload, pubblicazione per profilo, abilitazione. La visibilità per profilo vale anche per gli item su file. Come scrivere nuove funzioni o nuovi dataset è spiegato in Funzioni e serie dati.
Le pagine di questa sezione
- func3d — lo strumento;
- Manuale d'uso — tutte le sezioni dell'interfaccia spiegate, con immagini;
- Funzioni e serie dati — che cosa c'è e come si estende;
- Interpolazione — i metodi disponibili e il confronto con GRASS GIS;
- Analisi dati — lettura valori, snapping, evidenziazioni, sezione 2D;
- Libreria three.js — la base tecnologica e gli sviluppi possibili.
Keywords: grafici 3D, visualizzazione dati, superfici, nubi di punti, campi vettoriali, Three.js, WebGL, manuale