Está en la página 1de 42

IMAGEN-A

Revista del grupo de investigacin de la Junta de Andaluca FQM-296 "Topologa Computacional y


Matemtica Aplicada"
Universidad de Sevilla (Andaluca, Espaa)
ISSN: 1885-4508 - Ao I - n. 2

Modelos
EVM y OUDB
Trabajo de anlisis de la asignatura
Procesamiento de Imgenes Digitales
de 5 curso de Ingeniera Informtica.
Escuela Tcnica Superior de Ingeniera Informtica
Enero 2008. Grupo 38. Tutor: Pedro Real Jurado

Amores Garca, M. Pilar


mp.amores@gmail.com

Aparicio Ruiz, Pablo


pabloaparicioruiz@gmail.com

Delgado Ruiz, L. Helena


helena.delgado.ruiz@gmail.com

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Pgina 2 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

RESUMEN
El objetivo fundamental de este trabajo consiste en realizar una aplicacin didctica que
muestre en que cosiste dos modelos de representacin de imgenes en 3D: EVM
(Modelo de vrtices extremos) y OUDB (unin ordenada de cajas disjuntas).
El modelo EVM representa una imagen con un conjunto de vertices (extremos) que son
suficientes para no perder informacin. El modelo OUDB puede ser usarse para la
visualizacin del anterior, mediante una algoritmo de conversin y el resultado es un
conjunto de cajas (bloques) que forman partes disjuntas de la imagen.
PALABRAS CLAVE: EVM, OUDB, vrtice extremo, brink (arista extendida), plano de
vrtices.

ABSTRACT
The principal goal of this work is to develop a didactic application to show two models
of representation of 3D images: EVM (Extreme Vertices Model) and OUDB (Ordered
Union of Disjoint Boxes). The EVM represents an image with a set of vertices (extreme
vertices) which are enough in order not to lose information. The OUDB model can be
used for visualizing the last one, with a conversion algorithm and the result is a set of
boxes (blocks) which make disjoint pieces of the image.

KEY WORDS: EVM, OUDB, extreme vertice, brink, vertices plane.

Pgina 3 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Resumen / Abstract ...Pgina 3


Lista de imgenes...Pgina 5
1. Introduccin...Pgina 7
2. Problema terico....Pgina 8
3. Problema prctico: La aplicacin didctica .Pgina 17
4. Conclusiones........Pgina 35
5. Bibliografa...Pgina 36
6. Carga de trabajo...Pgina 37
7. Apndice: El artculo del trabajo .Pgina 43

Pgina 4 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

LISTA DE ILUSTRACIONES
Figura 2-1 Poliedro ortogonal no regular

... 8

Figura 2-2 (a) Poliedro two-manifold


Figura 2-2 (b) Pseudo poliedro...

... 9
... 9

Figura 2-3 (a) Poliedros ortogonales


Figura 2-3 (b) Pseudo poliedro ortogonal
Figura 2-3 (c) Poliedro ortogonal no regular

... 9
... 9
... 9

Figura 2-4 Un pseudo poliedro ortogonal P mostrando alguno de sus


brinks y sus caras extendidas

... 10

Figura 2-5 Un poliedro P con un vrtice no extremo

... 11

Figura 2-6 Un pseudo poliedro ortogonal P con todos sus planos-x, sus
secciones-x y sus vrtices extremos (en rojo)

... 12

Figura 2-7 (a) Pseudo Poliedro Ortogonal P con un vrtice no


... 13
extremo...
Figura 2-7 (b) Representacin EVM de P ... 13
Figura 2-7 (c) Clculo del vrtice no extremo (verde) como
interseccin de todos los brinks en las direcciones XYZ ... 13
Figura 2-8 (a) PPO P con sus planos de vrtices y secciones ... 14
Figura 2-8 (b) Secciones resultantes de aplicar la operacin xor ... 14
Figura 2-8 (c) Operacin XOR binaria ... 14
Figura 2-9 (a) Pseudo poliedro ortogonal P
Figura 2-9 (b) Planos de vrtices del PPO P perpendiculares al eje X
Figura 2-9 (c) Conjunto de rebanadas-X del PPO P

... 15
... 15
... 15

Figura 2-10 (a) Pseudo poliedro ortogonal P


Figura 2-10 (b) Planos de vrtices de cada rebabada-X del PPO P
perpendiculares al eje Y

Figura 2-10 (c) Conjunto de cajas resultantes tras seccionar cada
rebanada-X por sus planos de vrtices-Y...

... 15
... 15
... 16

Figura 2-11 Representacin OUDB del PPO P ... 16

Pgina 5 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Figura 3-1 Pantalla principal ... 18


Figura 3-2 Men Archivo

... 18

Figura 3-3 Men Ayuda

... 19

Figura 3-4 Botones rpidos

... 19

Figura 3-5 Pantalla de definicin de imagen ... ... 19


Figura 3-6 Ejecutar modelo EVM

... 20

Figura 3-7 Ejecutar paso a paso el modelo EVM... ...

... 20

Figura 3-8 Ejecutar modelo OUDB

... 21

Figura 3-9 Ejecutar paso a paso el modelo OUDB

... 21

Pgina 6 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

1. INTRODUCCIN
En la representacin de imgenes en 3D de forma tradicional se utiliza la
estructura de matrices para almacenar el valor de los vxeles (unidad mnima de
informacin 3D). En este caso trabajaremos con imgenes binarias, por tanto slo
tendremos dos valores posibles. Esta forma de almacenamiento se realizas por las
distintas capas de la imagen, por tanto, mientras mayor sea el volumen da la imagen,
ms informacin se guarda.
En este trabajo se propone otra forma de representacin de tal manera que se
reduzca la cantidad de informacin en una imagen sencilla. Como punto de partida se
tendrn en cuenta ciertas caractersticas que deben cumplir las imgenes con las que
vamos a trabajar. Al final veremos que a partir de esas imgenes, podemos tratar otras
de cualquier tipo.
Una vez definidas las condiciones iniciales veremos en qu consiste dicho
modelos de representacin, denominado Modelo de Vrtices Extremos (EVM). Se
detallarn las caractersticas del modelo para comprender las propiedades que tiene y
poder implementar un algoritmo de conversin desde el modelo de matrices.
Para poder visualizar la imagen a partir de la informacin que mantiene el modelo
EVM, es necesario seguir una serie de pasos y convertir esos datos; de esto se encarga
el modelo OUDB. Este ltimo tambin se detalla mas adelante con todas sus
caractersticas.

Pgina 7 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

2. PROBLEMA TERICO
El modelo EVM (Extreme Vertices Model) permite la representacin de pseudo
poliedros ortogonales de una forma clara y concisa. Tambin permite el desarrollo de
algoritmos simples pero robustos capaces de desempear las tareas ms usuales y
demandantes del modelado de slidos. Su hiptesis consiste en la seleccin de
vrtices especiales (vrtices extremos) para la construccin completa de un pseudo
poliedro ortogonal.
Por otra parte, el modelo OUDB (Ordered Union of Disjoint Boxes) es un
modelo derivado del EVM que permite obtener una representacin de ste, a travs
de un conjunto de cajas disjuntas obtenidas directamente del EVM que adems nos
facilitarn la visualizacin del mismo.
En esta seccin se explicarn los fundamentos tericos ms importantes
referentes a los modelos EVM y OUDB.

2.1 Terminologa
Un poliedro es un subconjunto del espacio euclidiano tridimensional
delimitado por un conjunto finito de polgonos planos, tales que cada arista de un
polgono es compartida por exactamente otro polgono (polgonos adyacentes). Los
vrtices y aristas de cada polgono son los vrtices y aristas del poliedro, y a su vez
los polgonos constituyen las caras del poliedro.

El conjunto formado por los poliedros puede a su vez dividirse en dos grupos:
a) Poliedros regulares: objetos homogneamente tridimensionales, es decir, son
objetos que no pueden tener caras o aristas colgantes. En la figura 2-1 se
pueden apreciar estos conceptos.
b) Poliedros no regulares: objetos no homogneamente tridimensionales.

Cara colgante

Arista colgante

Figura 2-1 Poliedro ortogonal no regular

En el presente documento nos centraremos en el estudio de poliedros regulares.

Pgina 8 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Los elementos frontera para los poliedros, las aristas y los vrtices pueden ser
de tipo two-manifold o non-manifold. Una arista two-manifold es exactamente
adyacente a dos caras del poliedro, mientras que un vrtice two-manifold es el pice
de un solo cono de caras; por otro lado, una arista non-manifold es adyacente a ms
de dos caras, y un vrtice non-manifold es el pice de ms de un cono de caras.

Vrtice two-manifold

Vrtice non-manifold

Arista non-manifold
Arista two-manifold

Figura 2-2 (a) Poliedro two-manifold, (b) Pseudo poliedro.

Los poliedros ortogonales (PO) son poliedros con todas sus aristas y caras
orientadas en tres direcciones ortogonales, es decir, que todas las aristas del poliedro
son paralelas a alguno de los ejes de coordenadas cartesianas en el es espacio
tridimensional, a saber, x, y, z. Los pseudo poliedros ortogonales (PPO) se definen
como poliedros regulares y ortogonales que pueden tener aristas o vrtices nonmanifold.

Figura 2-3 (a) Poliedros ortogonales, (b) Pseudo poliedro ortogonal y (c) Poliedro ortogonal no regular

Este ltimo caso de poliedro ser el que nos ocupe ms atencin en el presente
documento puesto que sobre ellos se estudiarn los modelos EVM y OUDB.

Pgina 9 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

2.2 El modelo de vrtices extremos (EVM).


A partir de los conceptos desarrollados en el apartado anterior, se pueden
abordar las principales definiciones y caractersticas incluidas dentro del modelo
EVM.
Un brink o arista extendida es el mximo segmento ininterrumpido
construido a partir de una secuencia de aristas two-manifold colineales y contiguas de
un PPO P. As mismo, una cara extendida es el conjunto mximo de caras coplanares
y contiguas, unidas por elementos de menor dimensin (vrtices y aristas) de un PPO.
Las aristas non-manifold no pertenecen a los brinks, pero cada arista twomanifold pertenece a un brink, donde cada brink consiste de una o ms aristas, y el
nmero de vrtices incluidos en el brink corresponde al nmero de aristas que lo
conforman ms uno. De manera similar, cada cara pertenece a una cara extendida, y
cada cara extendida consiste de una o ms caras.
La figura 2-4 muestra en (a) un PPO P con un brink compuesto por cuatro
aristas y cinco vrtices. En (b) se muestra en lneas punteadas las aristas non-manifold
y otros cuatro brinks con dos aristas cada uno. En (d) se muestra una cara extendida
compuesta por tres caras, y finalmente, en (e) se presenta una cara extendida del
mismo PPO P compuesta por cuatro caras.

Figura 2-4 Un pseudo poliedro ortogonal P mostrando alguno de sus brinks (b) y sus caras extendidas (c, d y
e). Las flechas representan los vectores normales de las caras.

A los vrtices finales de un brink o arista extendida se les denomina vrtices


extremos. En base a esto, en la figura 2-4 (a) los vrtices A y E seran vrtices
extremos. Los vrtices finales de todos los brinks de un PPO P constituiran todos los
vrtices extremos del PPO.
Se define al Modelo de Vrtices Extremos (EVM) para un PPO, como el
modelo de representacin que nicamente almacena los vrtices extremos de dicho
PPO.

Pgina 10 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

El orden de almacenamiento de los vrtices se realiza atendiendo a las


coordenadas de los mismos: primero se ordenan por la coordenada A, despus por la
coordenada B y por ltimo por la coordenada C. De esto se tiene que un EVM puede ser
ordenado de 6 maneras diferentes: XYZ, XZY, YXZ, YZX, ZXY, ZYX. En el presente
trabajo nos centraremos en el orden XYZ.

Figura 2-5. Un poliedro P con un vrtice no extremo. El conjunto de vrtices extremos ha sido ordenado y
etiquetado siguiendo el orden XYZ.

Siguiendo con los conceptos geomtricos relativos al modelo EVM, se tiene que
un plano de vrtices (plv) de un PPO es el conjunto de vrtices extremos que se
encuentran sobre un mismo plano perpendicular a algn eje de coordenadas. Si se tiene
ordenado el modelo de la forma XYZ, el EVM es una secuencia de puntos (vrtices
extremos) que pueden ser agrupados en subconjuntos. Cada uno de dichos subconjuntos
contiene el conjunto de vrtices que tienen la misa coordenada X, esto es, es el EVM
correspondiente al plano-X de vrtices (plv-x).
De manera anloga, definimos una lnea de vrtices (dentro de un plano de
vrtices) como el conjunto de vrtices extremos que se encuentran en una lnea paralela
a alguno de los ejes cartesianos. Siguiendo con la ordenacin XYZ, cada plano-X de
vrtices de un EVM se subdivide en lneas-Y de vrtices, es decir en conjuntos de
vrtices que tiene la misma coordenada Y.
Los conceptos que se explican a continuacin son aplicables tanto al caso 3D
como al 2D con lo cual la distincin entre ambas dimensiones se mencionar con una
anotacin entre parntesis, de tal manera que algunas veces se hablar de un plano o
lnea de vrtices para el caso tridimensional o bidimensional respectivamente.
Una rebanada (slice) es la regin contenida entre dos planos consecutivos(o
lneas consecutivas) de vrtices de un PPO.
Una seccin es el resultado de la interseccin entre un PPO y un plano (lnea)
paralelo a los planos (lneas) de vrtices del PPO pero que no coincide con ningn plano
(lnea) de vrtices.

Pgina 11 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Estos conceptos pueden verse claramente ilustrados en la siguiente figura:

Seccin
Rebanada

Plano de
vrtices

Figura 2-6 Un pseudo poliedro ortogonal P con todos sus planos-x, sus secciones-x y sus vrtices extremos (en
rojo). Se han trazado en amarillo los brinks en el sentido del eje Z, que a su vez constituyen las lneas-Y de
vrtices de cada uno de los planos de vrtices del PPO.

En la figura 2-7 se muestra un pseudo poliedro ortogonal P con cinco planos-x


de vrtices. Tambin se ilustran las secciones-x que contiene el poliedro. Obsrvese que
cuatro de ellas son internas y dos son externas, correspondiendo estas dos ltimas a las
secciones inicial y final de P, las cuales tambin son llamadas secciones virtuales. Por
ltimo se han marcado de rojo los vrtices extremos del PPO.

Pgina 12 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

2.2.1 Propiedades modelo EVM.


Las propiedades que se enuncian a continuacin relativas al modelo EVM
demuestran que a pesar de almacenar simplemente las coordenadas de los vrtices
extremos de la imagen, sta puede ser reconstruida a partir de ellos sin perder ninguna
de sus caractersticas morfolgicas.

Propiedad 1
La primera propiedad dice que las coordenadas de los vrtices no extremos
pueden ser fcilmente obtenidas a partir de los vrtices extremos simplemente como la
interseccin de los brinks del PPO en las 3 direcciones ortogonales XYZ.

Vrtice no

Figura 2-7. a)Pseudo Poliedro Ortogonal P con un vrtice no extremo. b) Representacin EVM de P. c)
Clculo del vrtice no extremo(verde) como interseccin de todos los brinks en las direcciones XYZ.

Propiedad 2
La segunda propiedad enuncia que cada una de las secciones del PPO pueden
ser calculadas a partir de los planos de vrtices y viceversa:

Donde plvi(P) y Si(P) se refieren a las proyecciones de plvi(P) y Si(P) en un


plano principal paralelo a P, n es el nmero de planos de vrtices de P y
* denota la
operacin XOR, que en realidad es igual al resultado de hallar la diferencia entre la

Pgina 13 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

unin y la interseccin entre los dos operandos. En la figura 2-8 quedan mejor
ilustrados estos conceptos.
b
a
S1 = S0

plv1

S2 = S1

plv1

S3 = S2

plv3

Operacin
XOR
O1 O2 Res

Figura 2-8 a) PPO P con sus planos de cvrtices y secciones. Marcados en rojo los vrtices extremos. b)
Secciones resultantes de aplicar la operacin xor entre el plano de vrtices y la seccin inmediatamente
anterior. Se superponen ambos polgonos, los fragmentos de ambos que coincidan se descartan, los que no
coincidan se incluyen en la solucin. c) Operacin XOR binaria.

A partir de estas propiedades queda demostrado que a partir de los vrtices extremos es
posible reconstruir la imagen original sin ninguna prdida de informacin.

Pgina 14 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

2.3 El modelo de Unin Ordenada de Cajas Disjuntas


(OUDB).
El modelo de unin ordenada de cajas disjuntas (OUDB) (Ordered Union of
Disjoint Boxes Model) es un tipo especial de representacin de descomposicin en
celdas. Este modelo se adapta bien a las principales caractersticas de los PPO descritas
anteriormente, de tal manera que puede ser obtenido fcilmente a partir del modelo
EVM sin prdida ninguna de precisin.
Un PPO ser representado en este modelo como una lista de cajas disjuntas, las
cuales ,si estn ordenadas adecuadamente, permitirn algoritmos simples y rpidos.
El modelo OUDB resulta de suma importancia en la visualizacin de poliedros
representados en EVM, ya que en s mismo, el modelo EVM carece de la informacin
necesaria para realizar una representacin de un PPO slido, puesto que la nica
informacin de la que se dispone son las coordenadas de los vrtices extremos.

2.2.1 Algoritmo de conversin de EVM a OUDB.


A partir del modelo EVM con sus vrtices extremos ordenados, en las
coordenadas XYZ se obtiene el modelo OUDB en los dos siguientes pasos:
1. Seccionamos el PPO P por cada uno de sus plv perpendiculares al eje X
obteniendo el conjunto de rebanadas de P.
b

a
c

Figura 2-9 a) Pseudo poliedro ortogonal P. b) Planos de vrtices del PPO P perpendiculares al eje X. c)
Conjunto de rebanadas-X del PPO P.

Pgina 15 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

2. Seccionamos cada una de las rebanadas obtenidas por cada uno de sus plv
perpendiculares al eje Y.
b

a
c

Figura 2-10 a) Pseudo poliedro ortogonal P. b) Planos de vrtices de cada rebabada-X del PPO P
perpendiculares al eje Y. c) Conjunto de cajas resultantes tras seccionar cada rebanada-X por sus planos de
vrtices-Y.

Finalmente, a partir del modelo EVM de un PPO se obtiene el modelo de cajas


disjuntas de dicho PPO, que s permite una fcil visualizacin del PPO slido a
representar. Las cajas quedan ordenadas primeramente segn el eje X, y luego segn el
eje Y facilitando de esta manera su manejo en posteriores posibles algoritmos.

Figura 2-11 Representacin OUDB del PPO P presentado en las figuras 2-9 y 2-10.

Pgina 16 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

3. PROBLEMA PRCTICO: LA APLICACIN


INFORMTICA
3.1 Descripcin de la aplicacin
La aplicacin que hemos desarrollado es totalmente didctica. La funcionalidad que
ofrece es la obtencin de los modelos anteriormente explicados a partir de una imagen
3D almacenada en matrices por capas.
La imagen desde la que se parte se puede crear desde la propia aplicacin y
guardarla para posteriores ejecuciones. De esta forma se permite abrirla y volver a
tratarla. La informacin de las imgenes guardadas se almacena en un archivo de texto
que sigue determinadas caractersticas, para que la aplicacin pueda interpretarlo.
Una vez que se tiene la imagen que se quiere tratar podr rotarse y moverse con los
botones izquierdo y derecho del ratn respectivamente para una mejor visualizacin. A
dicha imagen se le pueden aplicar los dos modelos definidos como se indica en el
manual de usuario. Podr hacerse directamente o paso a paso. Se cuenta tambin con
dos cuadros de texto dentro de la misma pantalla donde se mostrara la informacin
correspondiente a la tarea que se est realizando y los resultados obtenidos en cada
momento.
Adems esta aplicacin posee los mens tradicionales para crea una nueva imagen,
ver la ventana de crditos, obtener ayuda y salir de la aplicacin.
Todo est hecho de forma que resulte fcil y sencillo su uso, tanto de la aplicacin
en s, como de las operaciones que se realizan y los resultados que se obtienen

Pgina 17 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

3.2 Manual de usuario


Para el uso de la aplicacin es necesario seguir los siguientes pasos de instalacin:
Tener una maquina virtual de Java con versin igual o posterior a la 1.5.
Instalar la API de Java3D si an no se ha instalado en la dicha mquina.
Los directorios \images, |manual y \ejemplos deben encontrarse en la misma
carpeta que el archivo Modelos3D.exe en el caso de que se moviera la carpeta
Ejecutable de su origen.
Al abrir la aplicacin nos encontramos con la siguiente pantalla

Men Bsico

Men Ventana

Men Aplicacin

Informacin

Imagen

Figura 3-1: Pantalla principal

3.2.1 Men bsico.




Archivo
o Nueva Imagen
o Abrir Imagen
o Guardar Imagen
o Salir

Figura 3-2: Men Archivo

Pgina 18 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Ayuda
o Manual de Usuario
o Crditos

Figura 3-3: Men Ayuda

Botones rpidos
o

Abrir

Guardar

Ayuda

Figura 3-4: Botones rpidos

3.2.2 Definicin de imgenes.


Al pulsar el botn de aplicacin Definir Imagen aparece una nueva ventana

Nmero de Capa

Capa

Seleccin de Capas

Figura 3-5: Pantalla de definicin de imagen

Pgina 19 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

La imagen se define por capas. Se seleccionan los vxeles que se quieren rellenos
en cada una de las capa gracias a la barra deslizante. Una vez completada la imagen se
pulsa Aceptar para que se dibuje completamente en la ventana principal. Existe la
posibilidad de cancelar lo que se haya sealado, o de borrar la imagen completamente
usando los botones Cancelar y Borrar todo respectivamente.

3.2.3 Aplicar el modelo EVM.


Al pulsar el botn de aplicacin Modelo EVM aparece una nueva ventana.

Puede ejecutarse directamente el


algoritmo y ver los resultados
finales: en el cuadro de la imagen
se muestran los vrtices extremos
de la misma, y en el cuadro de los
datos aparecen las coordenadas de
esos puntos.

Figura 3-6: Ejecutar modelo EVM

En otro caso se puede aplicar el algoritmo paso a paso para conocer el proceso exacto
que se trata con la imagen para hallar sus vrtices extremos. Se nos permite seleccionar
la direccin en la que se muestran los brinks, aunque internamente solo sea necesaria
una de las direcciones para
hacer los clculos. Pulsando el
botn Sig y Ant podremos
visualizar en la ventana
principal todos los pasos
seguidos hacia delante y hacia
atrs respectivamente. Adems
en los cuadros de texto se
muestra la informacin y los
datos
obtenidos
correspondientes al paso dado.
Figura 3-7: Ejecutar pasos a paso el modelo EVM

Pgina 20 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

3.2.4 Aplicar el modelo OUDB.


Al pulsar el botn de aplicacin Modelo OUDB aparece una nueva ventana.

Puede ejecutarse directamente el


algoritmo y ver los resultados
finales: en el cuadro de la imagen se
muestran las cajas disjuntas que
componen la misma, y en el cuadro
de los datos aparecen las
coordenadas de esas cajas, su
profundidad, altura y anchura.
Figura 3-8: Ejecutar modelo OUDB

En otro caso se puede aplicar el algoritmo paso a paso para conocer el proceso exacto
que se trata con la imagen para hallar su modelo de cajas disjuntas. Se nos permite
seleccionar la direccin en la que se
muestran los brinks, aunque
internamente solo sea necesaria una
de las direcciones para hacer los
clculos. Pulsando el botn Sig y
Ant podremos visualizar en la
ventana principal todos los pasos
seguidos hacia delante y hacia atrs
respectivamente. Adems en los
cuadros de texto se muestra la
informacin y los datos obtenidos
Figura 3-9: Ejecutar pasos a paso el modelo OUDB
correspondientes al paso dado.

Pgina 21 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

3.4 Cdigo fuente documentado


Para crear nuestra aplicacin hemos usa el lenguaje Java en el entorno de desarrollo
Eclipse 3.2 por su comodidad a la hora de marcar errores y su fcil manejo.
Prcticamente todo el cdigo ha sido desarrollado por nosotros, salvo el tratamiento
de ficheros y la interfaz de creacin de la imagen que lo hemos reutilizado del trabajo
dirigido anterior (TDA) que nos asignaron. No hemos encontrado otro cdigo que se
ajustara a nuestras necesidades y por ello hemos tenido que crearlo.
Adems hemos tenido que crear desde cero el algoritmo de conversin de la imagen
guardada por vxeles ya que no encontramos ni siquiera un pseudo-cdigo.
Por otro lado, s disponamos de pseudo-cdigo del algoritmo para pasar del
modelo EVM y OUDB, y aunque fue costosa su comprensin, logramos implementarlo
correctamente usando la operacin XOR de planos, tambin implementada en el cdigo.
A continuacin se muestra el cdigo detallado y comentado de las partes ms
relevantes e influyentes de nuestro trabajo.
Clases ms importantes generadas para la aplicacin:
En esta seccin, destacamos la informacin de las clases ms importantes de esta
aplicacin, para que se entienda de manera bsica su utilidad dentro de ella.
Imagen
-instance: Imagen = null
-imagenInicial: int[*]
-imagenActual: int[*]
-imagenRendering: Canvas3D
+dibujarVoxeles: boolean = true
+dibujarAzul: boolean = false
+dibujarVerde: boolean = false
+dibujarRojo: boolean = false
+dibujarLinea: boolean = false
+dibujarX: boolean = false
+dibujarY: boolean = false
+dibujarZ: boolean = false
+esCreado: boolean = false
~colorVoxel: Color3f = new Color3f(0.5f, 0.5f, 2.0f)
+puntos: Puntos
<<create>>-Imagen()
+getInstance(): Imagen
+getImagenInicial(): int
+getImagenActual(): int
+getImagenRendering(): Canvas3D
+getImagenRenderingOUDB(oudb: OUDB): Canvas3D
+getImagenRenderingOUDBant(oudb: OUDB): Canvas3D
+hayVoxel(x: int, y: int, z: int): boolean
+remove()
+addVoxel(x: int, y: int, z: int)
+removeVoxel(x: int, y: int, z: int)
+volverAImagenInicial()
+setImagenInicial(imagen: int)
+setImagenActual(imagen: int)
+GuardarImagen(path: String)
+AbrirImagen(path: String)

La clase Imagen es la que


contiene las funciones de actualizacin
de las imgenes 3D y de aplicacin de
los modelos, en base a la clase Malla.
Adems de realizar la actividad base en
los modelos.

Pgina 22 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Malla
-Universo: BranchGroup = null
-Escenario: BranchGroup
-miCanvas3D: Canvas3D
-totalSwitch: Switch[*]
-spinGroup: TransformGroup
-zoomGroup: TransformGroup
-moveGroup: TransformGroup
-colorVoxel: Color3f = new Color3f(0.8f,0.0f,0.0f)
<<create>>+Malla()
+crearEscena()
+pintaVoxel(i: int, j: int, k: int, c: Color3f)
+quitaVoxel(i: int, j: int, k: int)
+obtenerImagen(): Canvas3D
+AadeEVM()
+nombreEjes(): BranchGroup

La clase Malla, es en la que creamos


la imagen 3D que utilizamos en nuestra
interfaz, donde pintamos los vxeles y
donde aadimos la informacin de nuestro
modelo EVM y OUDB.

CompuestoDePrimitivos
-raizTG: TransformGroup
-p: Puntos
-instance: CompuestoDePrimitivos
-imagen: Imagen
<<create>>-CompuestoDePrimitivos()
+getInstance(): CompuestoDePrimitivos
+setCompuestoDePrimitivos()
+getRaizTG(): TransformGroup
+getPuntos(): Puntos
-componer()
+CrearPuntos(): Puntos
+Shape3DPuntos(p: Puntos): Shape3D
+Shape3DLineas(p: Puntos, eje: String): Shape3D
-ArrayDePuntosB(ppuntos: Puntos): PointArray
-ArrayDeLineas(p: Puntos, eje: String): LineArray

La clase CompuestoDePrimitivos es
la clase en la que se crean las lneas y los
puntos que estructuran la informacin
visual del modelo. Y que constituyen la raz
de un TransformGroup que se aadir a la
imagen 3D

Axis
<<create>>+Axis()
-createGeometry(): Geometry
-createAppearance(): Appearance

Axis es la clase que genera los ejes de


coordenadas de la imagen 3D

Pgina 23 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

PointComparatorXYZ
+compare(o1: Object, o2: Object): int
+equals(o1: Object, o2: Object): boolean

La clase PointComparatorXYZ, es un
comparador usado para la ordenacin de puntos
extremos, y estrictamente necesario para el modelo
OUDB.

PointComparatorX
+compare(o1: Object, o2: Object): int
+equals(o1: Object, o2: Object): boolean

PointComparatorY
+compare(o1: Object, o2: Object): int
+equals(o1: Object, o2: Object): boolean

PointComparatorZ

Las clases PointComparatorX,


PointComparatorY, PointComparatorZ,
se usa para la ordenacin de puntos
extremos, y estrictamente necesario para
los brinks del modelo EVM.

+compare(o1: Object, o2: Object): int


+equals(o1: Object, o2: Object): boolean

TablaR
+TablaR: int[*]
+varXR: int
+varYR: int
+varZR: int

La clase TablaR, contiene la informacin de los


vxeles mediante una matriz de enteros.

<<create>>+TablaR(Tabla: int)
+getTablaR(): int
+valor(x: int, y: int, z: int): int

Punto
+px: int
+py: int
+pz: int
<<create>>+Punto(x: int, y: int, z: int)
+getx(): int
+gety(): int
+getz(): int
+clone(): Object
+iguales(p: Punto): boolean
+print(): String
+toString(): String

La clase Punto, representa un punto(x,y,z)


utilizado para definir puntos extremos en el modelo
EVM.

Pgina 24 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Puntos
+puntosvoxel: LinkedList
+vertices: LinkedList
+extremos: LinkedList
<<create>>+Puntos()
+Rellenar(t: TablaR)
+perteneceyborraExtremos(p: Punto): boolean
+perteneceVertices(p: Punto): boolean
+perteneceExtremos(p: Punto): boolean
+esVertice(atras: int, delante: int): boolean
+igualVector(v1: int, v2: int): boolean
+esVaciaCompletaReflejo(atras: int, delante: int): boolean
+stringLinkedList(l: LinkedList): String
+escribePuntos(color: String): String

La clase Puntos contiene la


informacin bsica necesaria para
realizar la aplicacin de manera
didctica, es decir, adems de los
puntos extremos del modelo EVM,
tambin contiene la informacin de los
vrtices y la informacin de los puntos
singulares de cada vxel.

EVM
-evm: LinkedList
-lbrinks: ListIterator
<<create>>+EVM()
<<create>>+EVM(EV: LinkedList)
+putBrink(a: Punto, b: Punto): EVM
+readBrink(): Brink
+endEVM(): boolean
+readPlv(dim: int): EVM
+vuelveAlPrincipio()
+toString(): String
+GetCoordNextPlv(dim: int): int
+GetCoord(plv: EVM, dim: int): int
+EVMtoOUDB(dim: int, PCoord: int, LCoord: int): OUDB
-xor(s1: EVM, plv: EVM, dim: int): EVM
+addEVM(fin: EVM)
-addBrink(brs1: Brink)
-termina(brs1res: Brink, brplvfin: Brink, resto: EVM, dim: int): EVM
-cloneNew(): EVM

La clase EVM, contiene la


informacin de los vrtices
extremos ordenadas, y permite leer
los brink, hacer la operacin xor,
los planos de vrtices...operaciones
necesarias para la creacin del
modelo OUDB a partir del EVM.

OUDB
-cajas: LinkedList
-numX: int
<<create>>+OUDB()
+aadeCaja(Pcoord: int, Lcoord: int, br: Brink)
+getnumX(): int
+aadirTodo(oudb: OUDB)
+toString(): String
+getCajas(): LinkedList

La clase OUDB, contiene las


operaciones necesarias para trabajar con la
lista de cajas.

Pgina 25 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Caja
-br: Brink
-PCoord: int
-LCoord: int
<<create>>+Caja(PCoord: int, LCoord: int, br: Brink)
+toString(): String
+getAnchura(): int
+getAltura(): int
+getProfundidad(): int
+getOrigen(): Punto

La clase Caja, conforma una


caja del modelo OUDB, es decir un
brink (que nos da la profundidad), y el
largo y ancho de la caja.

Brink
-a: Punto
-b: Punto
<<create>>+Brink(a: Punto, b: Punto)
<<create>>+Brink()
+getA(): Punto
+getB(): Punto
+getYCoordinate(): int
+toString(): String

La clase Brink, contiene los dos puntos que


definen a este.

El resto de clases, pertenecen a la construccin de la interfaz grfica, y por tanto,


son clases de menor importancia, y por ello no las destacamos en esta documentacin.

Pgina 26 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

Cdigo:
En este apartado, destacamos el cdigo perteneciente a los algoritmos de ambos
modelos, y algunas de sus funciones ms importantes, el resto del cdigo esta
comentado y documentado en la carpeta de cdigo que se adjunta con la
documentacin.

Algoritmo de paso del modelo vxeles al modelo EVM:

Realizado por el grupo de trabajo en base a propiedades del modelo EVM.

A partir de la informacin que se le pasa como parmetro, se rellenan las listas de


puntos, vrtices y puntos extremos (Las dos primeras para hacer didctica la aplicacin).
Esta es la funcin principal que determina quienes son los puntos caractersticos de
la imagen.
Entrada:
TablaR  Contiene una tabla con la informacin de cada una de las capas de la
imagen en voxel.
Salida:
Se rellenan las linkedlist de puntos, vrtices y puntos extremos.  puntosvoxel,
vertices y extremos

public void Rellenar(TablaR t)


{
int x,y,z;
Punto p; //Clase con las linkedlist de salida
//Recorremos la matriz de informacin
for(x=0; x<t.varXR-1; x++){
for(y=0; y<t.varYR-1; y++){
for(z=0; z<t.varZR-1; z++){
/* En el caso de que el voxel este relleno (que
exista el voxel)se sacan sus ocho vrtices y se
aaden a la lista puntosVoxel. Se estudia para cada
caso si es un vrtice y si es extremo.*/
if(t.valor(x, y, z)==1){
//Para cada voxel:
if(x>0 && y>0 && z>0 && x<t.varXR && y<t.varYR &&
z<t.varZR){
//Punto inferior izquierdo (Capa delantera)
p= new Punto(x,y,z);
//Aadimos el punto a la lista de (puntosvoxel)
puntosvoxel.add(p);
/* Formamos una convolucin con los vxeles que
rodean a un vrtice, la convolucin la forman los

Pgina 27 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

elementos de capaAtrs, es decir la capa actual,y


capaDelante, la capa de delante.*/
int[]capaAtras = new int[4];
int[]capaDelante = new int[4];
int k=0;
//Aadimos los elementos a la convolucin.
for (int i=0; i<2; i++){
for(int j=0; j<2; j++){
capaAtras[k] = t.valor(x+i-1, y+j-1, z);
capaDelante[k] = t.valor(x+i-1, y+j-1, z-1);
k++;
}
}
/*observamos las caractersticas de la convolucin
formada por las dos capas, si es vrtice se aade.*/
if(esVertice(capaAtras, capaDelante)){
if(!perteneceVertices(p)){
vertices.add(p);
}
}
/*observamos las caractersticas de la convolucin
formada por las dos capas, si es extremo se aade.*/
if(!perteneceyborraExtremos(p)){
extremos.add(p);
}
/*Se realiza de la misma forma para los ocho vrtices
de un voxel.*/
// Punto inferior derecho (Capa delantera)
p= new Punto(x+1,y,z);
...
//Punto superior izquierdo (Capa delantera)
p= new Punto(x,y+1,z);
...
//Punto superior derecho (Capa delantera)
p= new Punto(x+1,y+1,z);
...
//Punto inferior izquierdo (Capa trasera)
p= new Punto(x,y,z+1);
...
//Punto inferior derecho (Capa trasera)
p= new Punto(x+1,y,z+1);
...
//Punto superior izquierdo (Capa trasera)
p= new Punto(x,y+1,z+1);
...
//Punto superior derecho (Capa trasera)
p= new Punto(x+1,y+1,z+1);
...
}
}
}

/*Para saber si un punto es vrtice, observamos los vrtices que lo


rodean.*/
public boolean esVertice(int[] atras, int[] delante)
{

Pgina 28 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

/* Plantilas de distribucin de los vxeles para comparar las


combinaciones posibles*/
int[] plantilla0={0,0,0,0};
int[] plantilla1={1,1,1,1};
int[] plantilla21={1,0,0,1};
int[] plantilla22={0,1,1,0};
int[] aux;
boolean b=false;
int nVecinos=0;
/* Si la plantilla de atrs est formada toda por 0s o 1s
intercambiamos la de atrs con la de delante*/
if (igualVector(atras, plantilla0)
|| igualVector(atras, plantilla1) )
{
aux = (int[])atras.clone();
atras = (int[]) delante.clone();
delante = (int[]) aux.clone();
}
/*Contamos el nmero de vecinos o voxeles que aparecen en
la capa de atrs*
for(int i=0; i<4; i++){
if(atras[i] ==1)
{
nVecinos++;
}
}
/* Si el numero es impar o cumple las plantillas 21 y 22 
es candidato a vrtice*/
if (nVecinos%2!=0
|| (igualVector(atras,plantilla21)
|| igualVector(atras,plantilla22)))
{
b=true; //es vrtice en la capa de atras
}
// Si es candidato a vrtice
if (b)
{
/* Y si los dos vectores atrs y delante son iguales,
no es vrtice*/
if(igualVector(atras,delante))
b=false;
else
b=true;
}
// Si no es candidato a vrtice
else{
/* Y si los dos vectores atrs y delante son iguales,
no es vrtice*/
if (igualVector(atras,delante))
b=false;
/ Y si el vector delante es vacio(lleno ceros),
completo (lleno de unos) o es el reflejo del de
detrs, no es vrtice.*/
else
{
if(esVaciaCompletaReflejo(atras, delante))
b=false;

Pgina 29 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

else
b=true;
}
}
return b;
}
/* Si pertenece a la lista de extremos, lo borra y devuelve true. En
el caso de que no pertenezca devuelve false y no hace nada con la
lista*/
public boolean perteneceyborraExtremos(Punto p){
boolean pertenece=false;
Punto p2;
Iterator it=extremos.iterator();
while(!pertenece && it.hasNext()){
p2 =(Punto) it.next();
if(p.iguales(p2)){
pertenece=true;
p.print();
extremos.remove(p2);
}
}
return pertenece;
}

Algoritmo de paso del modelo EVM al modelo OUDB:

Basado en el pseudocdigo del articulo Connected Component Labeling


Based on the EVM Model (D. Ayala J. Rodrguez).

Datos de entrada:
Dim  Indica la dimensin en la que nos encontramos.(dim=3,2,1)
PCoord  Valor del Ancho de una caja.
LCoord  Valor del Largo de una caja.
Datos de Salida.
OUDB  Clase que contiene las cajas del modelo.

public OUDB EVMtoOUDB(int dim, int PCoord, int LCoord)


{
Brink br;
// S1 y S2 representan secciones.
// plv representa un plano de vrtices.
EVM S1, S2, plv;
OUDB q = new OUDB();

Pgina 30 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

ListIterator it1;
int x, y;
if(dim == 1) //Si la dimensin en la que estudiamos es 1
{
while(!this.endEVM())//Si hay puntos en el modelo EVM
{
br = this.readBrink();//se lee un brink del EVM
// Construimos una caja en base a ese brink, el
// ancho (PCoord) y el largo (Lcoord).
q.aadeCaja(PCoord, LCoord, br);
}
//se devuelve un modelo OUDB con todas las cajas existentes
return q;
}
else
{
//Si la dimensin es 2 o 3
dim--;//reducimos la dimension
//S1 es un modelo EVM vaco
S1 = new EVM();
// plv es un plano de vrtices
plv = (this.readPlv(dim)).cloneNew();
while(!this.endEVM())/*Si hay puntos en el modelo EVM
{
/*Realizamos la operacin xor entre el S1 y el plv
para dimensin dim- */
S2 = xor(S1, plv, dim).cloneNew();
if(dim == 2)
{
x = ((Punto)plv.evm.getFirst()).getx();
it1 = S2.evm.listIterator();
while(it1.hasNext())
{
((Punto)it1.next()).px=x;
}
}
else//dim == 1
{
y = ((Punto)plv.evm.getFirst()).gety();
it1 = S2.evm.listIterator();
while(it1.hasNext())
{
((Punto)it1.next()).py=y;
}
}
if(dim == 2)
/*Si la dimensin es 2, ya sabemos el ancho de
la caja.*/
PCoord = this.GetCoord(plv, dim);
else

Pgina 31 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

//Si la dimensin es 1, ya sabemos el


//largo de la caja.
LCoord = this.GetCoord(plv, dim);
//Se aade el conjunto de cajas creadas en
//llamada recursive.
q.aadirTodo(S2.EVMtoOUDB(dim,PCoord,LCoord));
// La nueva seccin S1 es ahora s2.
S1 = S2.cloneNew();
//leemos un Nuevo plano de vrtices.
plv = this.readPlv(dim);
}
}
return q; //Se devuelve un modelo OUDB
}

Pgina 32 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

3.3 Experimentacin
Para poder entender las propiedades de los modelos explicados vamos a detallar
paso a paso varios ejemplos para su comprensin.
A| Independencia del tamao de la imagen
Para ello trataremos dos imgenes:
1.
2.
3.
4.
5.

Abrir la aplicacin
Pulsar el botn Definir Imagen
Crear una imagen de un solo vxel en una sola capa. Pulsar Aceptar
Pulsar el botn Modelo EVM
En la nueva ventana abierta, pulsar Ejecutar

Se observa que aparecen los 8 puntos extremos de la imagen. Y sus coordenadas se


reflejan en el cuadro de la derecha.
6. Cerrar la ventana del modelo EVM
7. Pulsar el botn Definir Imagen
8. Crear ahora una imagen igual a la anterior pero el doble de grande, es decir
un cubo de 2x2. Pulsar Aceptar
9. Pulsar el botn Modelo EVM
10. En la nueva ventana abierta, pulsar Ejecutar
Se observa que aunque el tamao es mayor al anterior aparecen 8 puntos extremos,
y sus coordenadas se reflejan en el cuadro de la derecha. Se demuestra explcitamente
que este modelo de representacin es independiente al tamao de la imagen.

B| Comprensin del Modelo EVM


1.
2.
3.
4.

Abrir la aplicacin
Abrir o crear alguna imagen
Pulsar el botn Modelo EVM
Elegir la direccin en la que se quiera que aparezcan los brinks. Pulsar Paso
a paso
5. Si se pulsa repetidamente el botn Sig aparecer los resultados parciales
5.1. Aparecen los puntos de todos los vxeles de la imagen.
5.2. Aparecen los puntos que constituyen vrtices de la imagen de la
imagen.
5.3. Crea los brinks a partir de los vrtices
5.4. Se seleccionan los puntos finales de los brinks, denominados vrtices
extremos
Pgina 33 de 42

Imagen-A, Ao 2008, Grupo 38

6.

Modelos EVM y OUDB

5.5. Desaparecen los vxeles de la imagen, mostrando nicamente los


brinks y los vrtices extremos
5.6. Finalmente, slo se muestran los vrtices extremos de la imagen; esta
es la informacin que la determina.
Cerrar la aplicacin

C| Comprensin del Modelo OUDB


1.
2.
3.
4.

Abrir la aplicacin
Abrir o crear alguna imagen
Pulsar el botn Modelo OUDB
Elegir la direccin en la que se quiera que aparezcan los brinks. Pulsar Paso
a paso
5. Si se pulsa repetidamente el botn Sig aparecer los resultados parciales
5.1. Aparecen los vrtices extremos de la imagen, ya que es la informacin
que se necesita para empezar.
5.2. Aparecen los brinks en la direccin seleccionada.
5.3. Para cada una de las secciones en las que descomponen la imagen, se
muestran dos sub-pasos hasta que no haya ms secciones en la imagen
5.3.1. Se marca en negro la siguiente seccin a estudiar (corte con un
plano perpendicular al eje X)
5.3.2. Se marca en colores las distintas cajas resultantes dentro de la
seccin en la que se encuentre (corte con un plano
perpendicular al eje X)
6. Se muestra el conjunto de cajas que forman la imagen en distintos colores

Pgina 34 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

4. CONCLUSIONES
A partir de todo lo que se ha estudiado y realizado, destacamos:

En el modelo EVM se destaca el ahorro en memoria frente a otros modelos ya que


tan solo se almacenan los vrtices extremos de la imagen, independientemente del
tamao que esta tenga.

El EVM se trata de un modelo muy eficiente al realizar operaciones bsicas en


imgenes 3D (operaciones booleanas, expansin, contraccin). Esta caracterstica
no ha sido comprobada por nosotros mismos pero la conocemos a raz de toda la
documentacin que hemos tenido que buscar.

Aunque nosotros hemos trabajado directamente con pseudo poliedros ortogonales


(PPO), podemos determinar que cualquier imagen en 3D se compone de vxeles y
en el peor de los casos cada uno de ellos formara un PPO y podra aplicarse el
modelo. Esto llevara a decir, que dependiendo de las caractersticas de la imagen
sera ms o menos ventajoso ya que se reducira ms o menos la cantidad de
informacin almacenada.

La conversin de vxeles a EVM se puede usar como pre-procesamiento del


tratamiento de imgenes para la compresin de la informacin.

El etiquetado de componentes conexas a partir del modelo OUDB era el centro de


nuestro artculo de estudio, pero que nos ha sido imposible abarcar por falta de
tiempo. Esta metodologa provocara una gran reduccin en el nmero de
equivalencias gracias a los volmenes las cajas.

Pgina 35 de 42

Imagen-A, Ao 2008, Grupo 38

Modelos EVM y OUDB

5. BIBLIOGRAFA
Toda la bibliografa ha sido encontrada en internet

Connected Component Labeling Based on the EVM Model


D. Ayala J. Rodrguez

Volume EVM: A new approach for surface/volume integration


J. Rodrguez, D. Ayala, S. Grau - 2005

Speed-Up of EVM-based boolean operations


Jorge Rodrguez, Dolors Ayala.

Fast neighborhood operations for images and volume data sets


J. Rodriguez1, D. Ayala

Captulo 3 Tesis profesional de Ricardo Ruiz Rodrguez (Modelos EVM y


OUdBM)
2002, Universidad de las Amricas Puebla.

Solving point and plane vs. Orthogonal polyhedra using the Extreme Vertices
Model (EVM)
Antonio Aguilera, Dolors Ayala

Aprenda JAVA como si estuviera en primero


2000. TECNUN. Escuela de Ingenieros de Navarra

Pgina 36 de 42

6. CARGA DE TRABAJO
El grupo de trabajo se ha estructurado de la siguiente manera:
Fecha
28/11/2007

Comienzo Final
12:30:00 14:30:00

Tiempo
Tiempo
Interrupcin total
0:00:00

Miembros reunidos

Actividad

Comentario

2:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Anlisis TDA

Analizar el TDA y rellenar el cuestionario

Anlisis del problema

Leer el artculo

03/12/2007

10:30:00 11:00:00

0:00:00

0:30:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

10/12/2007

10:30:00 12:30:00

0:00:00

2:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Anlisis del problema

Buscar informacin extra

10/12/2007

12:45:00 13:45:00

0:00:00

1:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo

Anlisis del problema

Buscar informacin extra

Anlisis del problema

12/12/2007

12:30:00 14:30:00

0:00:00

2:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

13/12/2007

17:30:00 19:30:00

0:10:00

1:50:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Anlisis del problema

4:30:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Anlisis del problema

17/12/2007

9:00:00

14:00:00

0:30:00

Buscar informacin extra

19/12/2007

12:30:00 14:30:00

0:00:00

2:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

26/12/2007

11:00:00 14:15:00

0:00:00

3:15:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Diseo

Algoritmo paso Vxel a EVM


Familiarizacin con la interfaz grfica

Diseo

Algoritmo paso Vxel a EVM


Familiarizacin con la interfaz grfica

Anlisis del problema

Buscar informacin de Java 3D

26/12/2007

18:00:00 21:45:00

0:00:00

3:45:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

27/12/2007

10:30:00 14:15:00

0:30:00

3:15:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Diseo

Algoritmo paso Vxel a EVM


Familiarizacin con la interfaz grfica

Diseo

Algoritmo paso Vxel a EVM


Interfaz grfica

27/12/2007

17:30:00 21:00:00

0:30:00

3:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

28/12/2007

17:15:00 21:00:00

0:00:00

3:45:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Interfaz grafica
Modelo EVM

29/12/2007

10:30:00 14:15:00

0:20:00

3:25:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Interfaz grafica
Modelo EVM
Bsqueda de informacin Java 3D

30/12/2007

10:00:00 14:30:00

0:20:00

4:10:00

30/12/2007

12:30:00 14:30:00

0:20:00

1:40:00

30/12/2007

17:30:00 22:30:00

0:15:00

4:45:00

30/12/2007

17:15:00 21:00:00

0:45:00

3:00:00

Aparicio Ruiz, Pablo


Delgado Ruiz, Helena
Amores Garca, Pilar
Aparicio Ruiz, Pablo
Delgado Ruiz, Helena
Amores Garca, Pilar

Implementacin
Anlisis

Bsqueda de informacin OUDB

Implementacin

Modelo EVM

Anlisis

Bsqueda de informacin OUDB

Pgina 38 de 42

03/01/2008

10:00:00 13:45:00

0:10:00

3:35:00

Aparicio Ruiz, Pablo

Implementacin

Visualizacin del modelo EVM

Anlisis

Modelo OUDB

Diseo

Modelo OUDB

07/01/2008

17:00:00 22:00:00

0:20:00

4:40:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

08/01/2008

9:30:00

0:20:00

4:10:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

5:30:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Modelo OUDB
Interfaz grafica
Visualizacin del modelo EVM

14:00:00

08/01/2008

16:00:00 22:00:00

0:30:00

10/01/2008

9:30:00 14:00:00

0:20:00 4:10:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Modelo OUDB
Interfaz grafica

10/01/2008

15:00:00 16:45:00

0:00:00 1:45:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo

Implementacin

Modelo OUDB

10/01/2008

17:30:00 19:30:00

0:00:00 2:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Modelo OUDB

11/01/2008

10:00:00 14:00:00

0:20:00 3:40:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo

Implementacin

Modelo OUDB

11/01/2008

16:30:00 21:00:00

0:20:00 4:10:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Implementacin

Visualizacin Modelo OUDB


Interfaz grafica

12/01/2008

9:30:00 14:15:00

0:15:00 4:30:00

Implementacin

Visualizacin Modelo OUDB

12/01/2008

9:30:00 14:15:00

0:15:00 4:30:00

Revisin

Estructuracin y limpieza de cdigo

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Pgina 39 de 42

12/01/2008

17:30:00 23:59:00

0:20:00 6:09:00

12/01/2008
13/01/2008
13/01/2008

17:30:00 23:59:00
9:30:00 14:15:00
9:30:00 14:15:00

0:20:00 6:09:00
0:05:00 4:40:00
0:05:00 4:40:00

13/01/2008

17:00:00 23:30:00

0:15:00 6:15:00

13/01/2008

17:00:00 23:30:00

0:15:00 6:15:00

Aparicio Ruiz, Pablo


Delgado Ruiz, Helena
Amores Garca, Pilar
Amores Garca, Pilar
Delgado Ruiz, Helena
Amores Garca, Pilar
Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Revisin

Modificacin de la eficiencia

Implementacin
Presentacin
Revisin

Visualizacin Modelo OUDB


Preparacin de transparencias
Estructuracin y limpieza de cdigo

Presentacin

Preparacin de transparencias

Revisin

Estructuracin y limpieza de cdigo

Revisin

Revisin del conjunto del trabajo

Revisin

Revisin del conjunto del trabajo

Revisin

Revisin del conjunto del trabajo

Prueba

Prueba de proyeccin

15/01/2008

9:30:00 14:15:00

0:30:00 4:15:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

15/01/2008

15:30:00 16:30:00

0:00:00 1:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

15/01/2008

16:30:00 18:00:00

0:00:00 1:30:00

15/01/2008

16:30:00 18:00:00

0:00:00 1:30:00

15/01/2008

18:00:00 22:30:00

0:30:00 4:00:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Presentacin

Ensayo de la exposicin

Documentacin

Hojas de tiempo
Manual de usuario

Documentacin

Manual de usuario
Estructura del documento

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

17/01/2008

17:00:00 19:30:00

0:00:00 2:30:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

18/01/22008

9:00:00 10:30:00

0:00:00 1:30:00

Aparicio Ruiz, Pablo


Delgado Ruiz, Helena

Pgina 40 de 42

18/01/22008

12:30:00 14:00:00

0:00:00 1:30:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

Documentacin

Manual de usuario
Introduccin
Problema terico

Documentacin

Manual de usuario
Problema prctico

Documentacin

Experimentacin
Revisin

18/01/22008

17:10:00 21:30:00

0:00:00 4:20:00

Amores Garca, Pilar


Aparicio Ruiz, Pablo
Delgado Ruiz, Helena

19/01/22009

22:20:00 23:45:00

0:00:00 1:25:00

Delgado Ruiz, Helena

Pgina 41 de 42

Imagen-A, Ao 2008, Grupo 38

Carga total del trabajo


Pilar Amores Garca ------- 111,65 horas
Pablo Aparicio Ruiz ------- 116,32 horas
Helena Delgado Ruiz ------ 112,4 horas

Distribucin del trabajo

Pilar Amores Garca

Pablo Aparicio Ruiz

Helena Delgado Ruiz

Evaluacin del TDA


Bsqueda de informacin
Algoritmo OUDB
Interfaz grfica
Transparencias
Documentacin
Evaluacin del TDA
Bsqueda de informacin
Algoritmo EVM
Algoritmo OUDB
Transparencias
Documentacin
Evaluacin del TDA
Bsqueda de informacin
Algoritmo EVM
Interfaz grfica
Documentacin
Revisin

Modelos EVM y OUDB

También podría gustarte