Home Programmazione Java 3D - Guida completa Capitolo 6: Un semplice esempio 2D 'finto 3D': WITU.

Page Rank Check    





Ultimi articoli

Capitolo 6: Un semplice esempio 2D 'finto 3D': WITU.
Guide di programmazione - Java 3D - Guida completa
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 22:01

Guida a J3D --- Java3D - Capitolo 6: un semplice esempio 2D finto 3D: WITU



 

Banner ebook Java3D di Francesco "RedBaron85" Milanese

 

 

Capitolo 6: Un semplice esempio 2D 'finto 3D': WITU.

 

Per familiarizzare con la rappresentazione 2D di un 'universo virtuale' 3D viene qui presentata una piccola applicazione, una minimappa fornita di tre assi disposti in modo tale da rappresentare il sistema di riferimento di Java3D: Y verso l'alto, X positivo a destra e Z positivo uscente dallo schermo.

 

L'applicazione, chiamata 'WITU' (Where In The Universe), è sostanzialmente un piccolo pannello Java2D, ridimensionabile e personalizzabile, che, presi in input i valori delle coordinate X, Y e Z di un oggetto (o dell'osservatore) in un universo Java3D, mostra una sferetta in una minimappa.

 

 

La sferetta rappresenta proprio l'oggetto o l'osservatore, per cui l'applicazione si comporta come un pannello del tipo 'voi siete qui' (da qui, infatti, il nome WITU).

 

Nel pannello, un pallino bianco identificherà l'origine (coordinate (0.0, 0.0, 0.0)), mentre in alto a sinistra verranno mostrate le coordinate 3D 'reali' (cioè quelle in arrivo dalla Canvas3D) e un avviso di 'out of bounds'.

WITU Java 2D 3D

 

 

La lunghezza, in pixel, degli assi X e Y è pari rispettivamente a (width/10)*8 e (height/10)*8, la lunghezza dell'asse Z è calcolata mediante il teorema di Pitagora.

 

A causa delle dimensioni finite del Pannello, è possibile mostrare la posizione di un oggetto solo se questo si muove all'interno di uno spazio dalle dimensioni finite, chiamato 'bounding box'; nel nostro caso, quindi, dobbiamo definire una 'bounding size' (che poi equivarrà alla lunghezza dell'asse X, quindi la posizione 3D reale verrà tradotta, con una semplice proporzione e un paio di formule trigonometriche, in una posizione 3D in scala).

 

Serve un pò di trigonometria per calcolare le 'finte' coordinate di Z (dette, nel codice, tmpZx e tmpZy).

 

WITU Formule trigonometria proiezioni Java 2D 3D

 

Nel file sorgente 'WITU.java' sono presenti, commentate, tutte le istruzioni che permettono di simulare lo spazio 3D proiettandolo, mediante semplici formule, su di un pannello bidimensionale.

 

La classe WITU contiene semplicemente il pannello, da associare ad un'applicazione che gli invii i dati delle coordinate 3D.

Il file 'WITUapp.java', definito nella stessa pagina (prossimo articolo di questa guida) ove si trova  WITU.java, definisce appunto un piccolo moke object che crea un pannello WITU ed esegue alcune operazioni sullo stesso: sostanzialmente, invia dei valori X, Y e Z e li modifica nel tempo.

Il risultato di tali operazioni viene mostrato in tempo reale dal pannellino WITU.

 

Il lettore potrà, in seguito, incorporare WITU (che, tra l'altro, mette a disposizione metodi per la personalizzazione dell'aspetto, modificando ad esempio il colore o le etichette degli assi, modificando il colore della sfera rappresentante l'osservatore, disabilitando le scritte ecc...) nei propri progetti, senza penalizzarli in termini di performances, in quanto si tratta di una semplice applicazione 2D, non di una Canvas3D.

 

CODICE SORGENTE DELL'ESEMPIO - CLICCARE QUI

 

 


 

Banner ebook Java3D di Francesco "RedBaron85" Milanese

Tags:     redbaron85      programmazione      guide      manuali      corso      j3d      java 3d      java3d      capitolo 6      esempio 2d      finto 3d      witu      applicazione java
Ultimo aggiornamento Mercoledì 07 Marzo 2012 20:03
 

Ti è piaciuto questo articolo ? Condividilo !



RedBaron85.com Forum community banner

Non hai trovato quello che cercavi ?
Ricerca personalizzata
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.

Milanese Francesco - Partita IVA: 04950350878

AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials