Escenario Gráfico
Estructura de datos compuesta de nodos y arcos
Nodo
Elemento dato
Arco
Relación entre elementos datos
Escenario Gráfico Java 3D
Construido de objetos nodos con relaciones padre-hijo formando una estructura de árbol
SceneGraphObject es la superclase de casi todas las clases corazón y de utilidad de Java 3D. Tiene dos subclases: Node y NodeComponent. Lassubclases de Node proporcionan la mayoría de los objetos de un escenario gráfico. Un objeto Node es un objeto nodo Group o un objeto nodo Leaf.
Clase Node La clase Node es una superclase abstracta de las clases Group y Leaf. Esta clase define algunos de los métodos importantes de sus subclases. Las subclases de Node componen escenarios gráficos.
Clase Group La clase Group es la superclaseusada en especificación de localización y orientación de objetos visuales en el universo virtual. Dos de las subclases de Group son: BranchGroup y TransformGroup. En la representación gráfica de un escenario gráfico, los símbolos de Group (círculos) normalmente se anotan con BG para BranchGroups, TG para TransformGroups.
Clase Leaf La clase Leaf es la superclase usada para especificar la forma, elsonido y comportamiento de los objetos visuales en el universo virtual. Algunas de las subclases de Leaf son: Shape3D, Light, Behavior, y Sound. Estos objetos podrían no tener hijos pero podrían referenciar a NodeComponents.
Clase NodeComponent La clase NodeComponent es la superclase usada para especificar la geometría, la apariencia, la textura y las propiedades de material de un nodo Shape3D(Leaf). Los NodeComponents no forman parte del escenario gráfico, pero son referenciados por él. un NodeComponent podría ser referenciado por más de un objeto Shape3D.
Algoritmo para Escribir Programas Java 3D
Las subclases de SceneGraphObject son los ladrillos que se ensamblan en los escenarios gráficos. La línea básica de desarrollo de un programa Java 3D consiste en siete pasospresentados a continuación. Crear un Objeto Canvas3D Crear un objeto VirtualUniverse Crear un objeto Locale, adjuntarlo al objeto VirtualUniverse Construir la rama de vista gráfica: Crear un objeto ViewPlatform Crear un objeto View Crear un objeto PhysicalBody Crear un objeto PhysicalEnvironment Adjuntar los objetos ViewPlatform, PhysicalBody, PhysicalEnvironment, y Canvas3D al objeto View Construir la(s)rama(s) gráfica(s) de contenido Compilar la(s) rama(s) gráfica(s) Insertar los subgráficos dentro del objeto Locale
La clase principal de un programa Java 3D normalmente define un método para construir la rama de contenido gráfico. Dicho método está definido como createSceneGraph(). Los pasos del algoritmo se implementan en el constructor de la clase Grafico1. Paso 1, crear un objeto Canvas3D,se completa en la línea 4. Paso 2, crear un objeto SimpleUniverse, se hace en la línea 11. Paso 2a, personalizar el objeto SimpleUniverse, se realiza en la línea 15. Paso 3, construir la rama de contenido, se realiza en la llamada al método createSceneGraph(). Paso 4, compilar la rama de contenido gráfico, se hace en la línea 8. Finalmente el paso 5, insertar la rama de contenido gráfico en elobjeto Locale del SimpleUniverse, se completa en la línea 16:
Creación de un Objeto Gráfico
1. public class Grafico1 extends Applet { 2. public Grafico1() { 3. setLayout(new BorderLayout()); 4. Canvas3D canvas3D = new Canvas3D(null); 5. add(“Center”, canvas3D); 6. 7. BranchGroup scene = createSceneGraph(); 8. scene.compile(); 9. 10. // SimpleUniverse es una clase de conveniencia 11.SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 12. 13. // Mueve el ViewPlatform para que los objetos de la escena 14. // pueda ser vista. 15. simpleU.getViewingPlatform().setNominalViewingTransform(); 16. simpleU.addBranchGraph(scene); 17. } // Fin de Grafico1 (constructor)
En el programa de ejemplo Grafico1, sólo se sitúo un objeto gráfico en una única localización. En la figura podemos ver el…