Está en la página 1de 23

Geometrías

Java 3D
Clases de Geometría Primitiva
La primera clase geométrica que nos permitirá
crear objetos en 3D se llama:

Shape3D
Un objeto Shape3D no definirá por si solo ni la
forma ni la apariencia de un objeto, de estas
funciones se encargaran el nodo componente
Geometry y el nodo componente Appearance.
La función reservada al objeto Shape3D es la del
vinculo entre los 2 nodos.
Para definir un objeto visual es obligatorio crear
un objeto Shape3D y el nodo Geometry, el nodo
Appearance, es opcional.
Para crear una clase que defina un objeto 3D a
partir de la cual se puedan construir objetos de
este tipo se deben de seguir los siguientes
pasos:
1. Se crea una clase con la extensión Shape3D
para que herede todas las propiedades y
métodos de dicha clase.

2. Se declaran los nodos componente


Geometry y Appearance como privados.
3. Se inicia el constructor de la clase en la que se
llamara a los métodos crear geometría
(createGeometry) y crear apariencia
(createAppearance) para definirlas, luego se
vincularan al objetos Shape3D usando los
metodos de esta clase.
4. Por ultimo se declaran los métodos
necesarios para definir la geometría y
apariencia del objeto:
Geometrías Predefinidas

Java 3D tiene definidas un conjunto de clases


Shape3D para crear Figuras geométricas
simples(cubo, cono, cilindro, esfera).
Box
La clase Box crea una caja cubica de 2 metros de
longitud con los vertices opuestos en las
esquinas (1,1,1) y (-1,-1,-1). En este tipo de
clases el programador no puede cambiar la
geometría, pero si puede cambiar la apariencia.
Cone
Esta clase define un cono centrado en el origen
de coordenadas, alineado según al eje de las Y
con una altura de 2 metros y un radio de la base
de 1 metro.
El centro del cono es el que corresponderia al
del cubo en el que esta inscrito y no a su propio
punto de equilibrio.
Cylinder
Esta clase define un cilindro de 1 metro de radio
y 2 metros de altitud centrado en el origen de
coordenadas y alineado según al eje de las Y.

Sphere
Esta clase crea por defecto una esfera centrada
en el origen y de radio 1 metro.
Clases de Geometría Avanzada
GeometryArray
El potencial de java 3D radica en la versatilidad y
variedad de clases que posee para poder
construir estos objetos usando el minimo
numero de clases distintas. La construcción de
objetos geométricos complejos se basa en el uso
de puntos y líneas y polígonos (triangulos,
cuadriláteros,etc.)
Las subclases de la clase Geometry se dividen en
3 grupos:
–Geometría no Indexada(Permite crear objetos
cuyos vértices se utilizan solo una vez)
–Geometría Indexada(Permite crear objetos cuyos
vértices se usan varias veces)
–Escribir texto en 3D, representar imágenes o
comprimir geometrías para enviarlas a través de la
red)
Todas las subclases anteriores son hijas de la
clase abstracta GeometryArray que a la vez es
hija de la clase Geometry.
Para resumir, con GeometryArray el
programador puede crear un objeto complejo
definiéndolo a partir de sus vértices. La unión de
estos vértices mediante líneas, triángulos,
cuadriláteros, etc, producirá el efecto deseado.
PointArray, LineArray, TriangleArray,
QuadArray.

En seguida se muestran ejemplos de las cuatro


subclases de GeometryArray: PointArray,
LineArray, TriangleArray, y QuadArray, estas
dibujan lineas, triangulos y cuadrados siguiendo
un orden establecido por nosotros.
GeometryStrip
La diferencia principal entre las subclases del
tipo GeometryArray con las de GeometryStrip,
es la encadenacion de elementos. En las de
GeometryStrip, las lineas y triangulos se unen
uno a continuacion de otro a diferencia de las de
GeometryArray que cada elemento queda
separado del anterior.
En la subclase LineStripArray se van uniendo
lineas según el orden de los vertices. En la
TriangleStripArray se van creando triangulos
uniendo el nuevo vertice con los 2 anteriores y en
TriangleFanArray se crean los distintos triangulos
uniendo los 2 ultimos verticen con el primero.
IndexedGeometryArray
La geometria indexada es otra forma de crear objetos
geometricos con Java3D. Es de mucha utilidad cuando
repetimos determinados vertices a la hora de definir el
objetos.
Las subclases de IndexedGeometryArray son:
IndexedLineArray, IndexedPointArray,
IndexedTriangleArray, IndexedQuadArray. Ademas
tenemos IndexedGeometryStripArray con las
subclases: IndexedLineStripArray,
IndexedTriangleStripArray, IndexedTriangleFanArray.
Todas las anteriores subclases heredan los
metodos ya explicados para GeometryArray y
GeometryStripArray de las cuales son hijas.

También podría gustarte