Tredimensioni - (by Gianpaolo Bottin)
I solidi in prospettiva sul TI-99/4A sono stati sempre degli argomenti ostici in quanto l'hardware e la lentezza del linguaggio non erano molto all'altezza per questo tipo di grafiche. Qualcuno però riuscì a trovare il modo di trasformare i classici set di caratteri punti e linee per simulare uno spazio tridimensionale. Scritto in Extended BASIC dallo sviluppatore Gianpaolo Bottin, nel 1985, venne pubblicato sulla rivista italiana TI99Newsoft di Giugno.

Come suggerisce il nome, questo programma per TI-99/4A è dedicato alla visualizzazione prospettica di solidi tridimensionali. Senza addentrarsi nei dettagli matematici del calcolo prospettico, l’autore ci spiega che il sistema si basa su assi cartesiani centrati sullo schermo. È quindi possibile inserire coordinate sia positive che negative, e osservare la figura come se ci si trovasse lungo l’asse X, a un’altezza che può essere scelta di volta in volta.
Una volta avviato il programma con il comando RUN, comparirà un menu principale che offre 13 opzioni operative:
1. Definizione punti: Permette di caricare in memoria le coordinate X, Y e Z dei vertici della figura. Si parte indicando il numero del primo vertice, poi si inseriscono le coordinate di ciascun punto in ordine.
2. Definizione linee: Dopo aver inserito i vertici, si specificano gli spigoli che collegano i punti. Si indica lo spigolo di partenza e si inseriscono i numeri dei vertici di partenza e di arrivo (es. “1 - 2”).
3. Rotazione: Consente di ruotare la figura attorno agli assi cartesiani. Si inseriscono gli angoli di rotazione (in gradi) rispetto agli assi X, Y e Z, e si indicano i punti su cui si vuole agire. Utile quando si hanno più figure in memoria e si desidera intervenire solo su una parte.
4. Cambiamento scala: Modifica la dimensione della figura. Si inserisce un fattore di ingrandimento (maggiore di uno per ingrandire, minore per rimpicciolire) e si selezionano i punti da modificare.
 |  |
5. Distorcere una dimensione: Agisce selettivamente su una sola dimension (X, Y o Z), alterandola rispetto alle altre.
6. Trasferire punti: Permette di copiare dei vertici da una posizione all’altra, ad esempio duplicare il punto 1 nel punto 5. Si indica il punto di partenza, quello di destinazione e il numero di punti da trasferire.
7. Spostamento punti: Modifica le coordinate di un singolo vertice, incrementando o decrementando i valori di X, Y e Z.
8. Spostamento figura: Trasla un’intera figura nello spazio. Si indicano gli spostamenti per ciascuna coordinata e i punti coinvolti.
9. Lista punti: Visualizza le coordinate dei punti attualmente in memoria.
10. Lista linee: Elenca gli spigoli definiti. Durante la visualizzazione, è possibile continuare a scorrere premendo “S” quando compare la scritta “SCROLL?”, oppure tornare al menu premendo un altro tasto.
11. Salvataggio su cassetta: Consente di salvare i dati delle figure su nastro, per conservarli o riutilizzarli in seguito.
 |  |
12. Caricamento da cassetta: Permette di caricare in memoria una figura precedentemente salvata. Nella cassetta allegata è incluso un esempio già pronto: un parallelepipedo che può essere visualizzato con l’opzione successiva.
13. Visualizzazione prospettica: È il cuore del programma. Dopo aver definito punti e linee, e magari aver ruotato o scalato la figura, questa funzione permette di vederla in prospettiva sullo schermo. L’utente deve inserire due parametri fondamentali:
- La distanza del punto di fuga, che non deve trovarsi all’interno della figura. Più è vicino, più la figura appare grande e la prospettiva accentuata.
- L’altezza dell’osservatore, rispetto al piano XY (considerato a quota zero), che influisce sull’angolazione della visione.
Il programma esiste in due versioni: una per chi possiede solo il modulo Extended BASIC, l’altra per chi dispone anche dell’espansione di memoria. La versione avanzata utilizza routine in linguaggio macchina per gestire la grafica ad alta risoluzione, con subroutine riutilizzabili anche in altri progetti. La versione BASIC, invece, si affida alla funzione PLOT
, con velocità di tracciatura più lenta e il limite dei 111 caratteri definibili dall’utente. Queste limitazioni sono superate nella versione con espansione, grazie alla modalità BIT-MAP.
Un esempio pratico: il parallelepipedo
A corredo del programma, nella cassetta fornita è incluso un esempio già pronto da caricare con l’opzione 12. Si tratta di un parallelepipedo definito nei suoi vertici e spigoli, che può essere visualizzato immediatamente usando l’opzione 13. Per ottenere una resa prospettica efficace, l’autore consiglia di impostare la distanza del punto di fuga a 200 e l’altezza dell’osservatore a 30.
Questi valori permettono di apprezzare la figura con una prospettiva ben marcata: il punto di fuga sufficientemente vicino accentua la profondità, mentre l’altezza dell’osservatore colloca lo sguardo in una posizione sopraelevata rispetto al piano XY. Il risultato è una rappresentazione tridimensionale che, pur nei limiti grafici del TI-99/4A, riesce a evocare lo spazio e la forma con sorprendente efficacia.
Questo esempio non è solo una dimostrazione tecnica: è anche un invito a sperimentare. Caricandolo, modificandolo, ruotandolo o scalandolo, l’utente può esplorare tutte le potenzialità del programma senza dover partire da zero. È una base solida per chi vuole imparare, testare o semplicemente lasciarsi affascinare dalla geometria in pixel.

Presente nella sezione download, trovate il file .ZIP dei programmi in Extended BASIC e l'Esempio in formato .WAV.
Questo gioco è stato pubblicato nella rivista Italiana TI99Newsoft

TI99NewSoft numero 10 - Giugno 1985