Esempi di Java 3D.

Slides:



Advertisements
Presentazioni simili
Java base V: La gestione delle Eccezioni
Advertisements

Unit à E4 Applet. Obiettivi Saper progettare e realizzare Applet Java allinterno di pagine HTML Comprendere le interazioni tra il browser e lapplet Saper.
Oggetti Java.
Costruttori e Distruttori
Package Utilizzo classi.
Applet Java.
Unit à E3 Eventi. Obiettivi Conoscere il concetto di evento e gestore di evento Conoscere i pulsanti in Swing e la gestione dellevento clic Saper gestire.
9/11/2004Laboratorio di Programmazione - Luca Tesei1 Tipi numerici di base - Costanti Interi e decimali Definizione di costanti.
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
Programmazione Ingegneria TLC
LIP: 4 Aprile 2008 ECCEZIONI. Eccezioni Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
GUI Graphical Users Interfaces
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Programmazione ad Eventi
Applet Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Seminario per il corso Elementi di Grafica Digitale Dott. Federico ELIA A.A
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Introduzione al linguaggio Java
Swing e la programmazione a eventi
Swing e la programmazione a eventi
1 Lezione XIII Lu 17-Nov-2005 Programmare le classi.
Grafico di funzione Disegna la Matematica.
1 Eventi/2 Più movimento alle classi. 2 Eventi Java Modo per intercettare il verificarsi di certe condizioni / azioni e fare in modo che venga eseguito.
Soluzione Esercizio - Classe Vettore
Esercizi di grafica ….
1 Grafica ed eventi/2 Più movimento alle classi. 2 Esercizio n.1 Realizzare una applicazione che permette il trascinamento di una ellissi allinterno di.
Più movimento alle classi
ingredienti fondamentali e tecniche di base
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica.
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Progetto di applicazioni grafiche. Disegno di forme complesse Prassi : un classe per ciascuna forma Progetta la forma individuando le componenti base.
Animazione di un cubo in Java 3D
Java 3D.
Open Inventor In questa lezione impareremo a:
Progettare siti con ASP.net
IL CONCETTO DI PACKAGE Una applicazione è spesso composta di molte classi (eventualmente correlate) Un package è un gruppo di classi che costi- tuiscono.
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori. Lapproccio classico consiste nellinse- rire controlli.
JAVA E LA GRAFICA L’architettura Java è graphics-ready
APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e.
AlgoLab - Ereditarieta' Ereditarietà e polimorfismo in Java Laboratorio di Algoritmi 02/03 Prof. Ugo de Liguoro.
Creazione di classi.
Conversione da base 10 a base X (Utilizzo della pila)
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Esercizi Swing.
Aggiungiamo Elementi al Frame Per poter posizionare un elemento all'interno di un frame dobbiamo utilizzare il "layout manager". Ogni contenitore (Container)
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Esercitazione Ereditarietà Polimorfismo. Entita’ Geometrica PuntoCerchioPoligono TriangoloQuadrilatero Rettangolo Quadrato.
Corso di Algoritmi e Strutture Dati con Laboratorio A.A. 2014/15 Libreria standard.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Timer Animazioni.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
LIP: 22 Marzo 2005 Eccezioni. Eccezioni-Richiami Come si definiscono eccezioni Come si lanciano Come si gestiscono (gestione esplicita o di default)
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.
Transcript della presentazione:

Esempi di Java 3D

SimpleBehavior Elementi di grafica digitale - Java 3D - Gobbo Dario //L'implementazione del Behavior personalizzato di un programma che //renderizza un cubo che ruota ad ogni pressione di un tasto public class SimpleBehavior extends Behavior { private TransformGroup targetTG; private Transform3D rotation=new Transform3D(); private double angle=0.0; public SimpleBehavior(TransformGroup targetTG) this.targetTG=targetTG; } public void initialize() //Questo Behavior risponderà ad eventi di tastiera sul key pressed this.wakeupOn(new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED)); public void processStimulus(Enumeration criteria) //Incrementa l'angolo angle+=0.1; //Evita problemi di overflow if (angle>2*Math.PI) angle=0; //imposta la rotazione dell'angolo rotation.rotY(angle); targetTG.setTransform(rotation); //Reseta il Behavior per continuare a rispondere ad eventi di tastiera Elementi di grafica digitale - Java 3D - Gobbo Dario

Alcune classi utili com.sun.j3d.utils.universe.Billboard com.sun.j3d.utils.behaviors.keyboard.KeyNavigatorBehavior com.sun.j3d.utils.behaviors.mouse.* traslazione zooming rotazione com.sun.j3d.utils.universe.Billboard com.sun.j3d.utils.universe.OrientedShape3D com.sun.j3d.utils.universe.DistanceLOD com.sun.j3d.utils.universe.Morph Elementi di grafica digitale - Java 3D - Gobbo Dario

MouseRotate Elementi di grafica digitale - Java 3D - Gobbo Dario import java.awt.*; import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.behaviors.mouse.*; import javax.media.j3d.*; import javax.swing.*; //Renderizza un cubo rotabile interattivamente public class MouseRotateApp extends JFrame { public MouseRotateApp() //Recupera le configurazioni grafiche del computer GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); //Crea il Canvas3D e lo aggiunge al frame Canvas3D canvas3D=new Canvas3D(config); this.getContentPane().add(canvas3D,BorderLayout.CENTER); BranchGroup Universo Virtuale Locale Nodi BranchGroups Nodi TrasformGroups BG TG View Canvas3D Screen3D View Platform this.getContentPane().add(canvas3D,BorderLayout.CENTER); //Crea la scena BranchGroup scene=createSceneGraph(); Physical Body Physical Enivironment //Crea il SimpleUniverse SimpleUniverse simpleU=new SimpleUniverse(canvas3D); //Compila la scena (subito prima di renderla viva) scene.compile(); //Aggiunge la scena all'universo simpleU.addBranchGraph(scene); } Elementi di grafica digitale - Java 3D - Gobbo Dario

createScheneGraph() //Crea la scena private BranchGroup createSceneGraph() { //Crea la radice del branch graph BranchGroup objRoot=new BranchGroup(); //Crea un gruppo per le trasformazioni affini TransformGroup objRotate=new TransformGroup(); objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ); //Aggiunge al gruppo un cubo colorato objRotate.addChild(new ColorCube(0.4)); //Crea il behavior per ruotare il cubo MouseRotate myMouseRotate=new MouseRotate(objRotate); //Imposta un raggio d'azione del behavior myMouseRotate.setSchedulingBounds(new BoundingSphere()); //assembla la scena objRoot.addChild(myMouseRotate); objRoot.addChild(objRotate); return objRoot; } Universo Virtuale Locale Nodi BranchGroups Nodi TrasformGroups BG BG TG TG S View Canvas3D Screen3D View Platform Physical Body Physical Enivironment Elementi di grafica digitale - Java 3D - Gobbo Dario

Altri esempi Simile al precedente ma invece di usare il mouse usa un Behavior sulla tastiera. Questo programma visualizzautilizza un loader che carica un file che rappresenta un oggetto. Questo è il segmento di codice che carica il file ObjectFile f=new ObjectFile(ObjectFile.RESIZE); try { //Carica il galeone Scene s=f.load(“galleon.obj"); //Inserisce il galeone nello SceneGraph objScale.addChild(s.getSceneGroup()); } catch (Exception e) {System.out.println(e);} Elementi di grafica digitale - Java 3D - Gobbo Dario