Páginas

lunes, 22 de noviembre de 2010

Sistema de coordendas de objeto

Introducción

Uno de los elementos clave en los que se basará Infant es el Sistema de Coordenadas de Obejeto y que consiste basicamente en que una vez vectorializados los bordes de un determinado objeto estos se convertiran a un sistema propio de coordendas.

Origen de la idea

Esto va ha sonar un poco raro... pero cerrar los ojos e imaginaros primero una manzana cualquiera y después borrar esa imagen de la manzana e imaginaros la Torre Eiffel. En esas imagenes que se os presentan, por lo menos en mi caso, aparece la manzana en la misma escala que la torre es decir que si suporponeis esas dos imagenes las dos tendran el mismo tamaño y la manzana tapará a la Torre Effiel. Es juesto en esa idea de mantener las proporciones en referencia al total de la dimensiones de cada objeto en la que se basa el sistema.

Sistema de coordendas de objeto

Para desarrollar las ideas anteriormente descritas nace la necesidad del sistema de coordendas unico para todos los elementos y surge a raiz de querer comparar estos objetos entre si, para lo que debe garantizarse que:
  • Todos los objetos estan en la misma escala, es decir que si se compara un determinado simbolo que ocupa 1000x1000 px. y el mismo simbolo pero en una de 100x100 se sigan podiendo comparar los vectores de ambos.
  • La posicion relativa entre estos vectores es la misma, es decir que siempre se realizen las mismas transformaciones en objetos similares.
  • Que no haya deformaciones o si las hay que sean iguales en todos los objetos (en nuestro caso las habrá).
Para lograr estos objetivos en Infant se ha implementado un sistema en el que la unidad viene definida por las dimensiones totales del objeto (en realidad del nivel), en nuestro caso se define y se compara con el 100% que componen los limites del objeto (del nivel) (Bounding Box) por lo que el resto de los vectores vendrán determinados en este nuevo sistema como un porcentaje del ancho y alto total de la imagen original.
Matematicamente simplemente se define un sistema ortonormal en el que el origen de coordenadas es la coordenda menor (inferior izquierda) de la imagen y los vectores directores (aunque en nuetro caso su módulo no es la unidad sino el 100%) son los compuestos por el ancho y el largo del bounding box que contiene el objeto despues para transformar el objeto a ese sistema de coordenadas lo que hacemos es simplemente, sobre cada vector aplicaicar una traslacion y escalarlos segun el porcentaje en relacion al nuevos ejes de coordendas por lo que la operacion matematica es simplemnte suma y multiplicacion de vectores. Como imagino que será mucho mas fácil verlo graficamente un ejemplo sencillo sería el siguiente en el que la letra J pasa a convertirse en la letra J en el sistema de coordendas de objeto (aplicando también una simplificación a la imagen vectorializada de la que ya hablaremos):



No hay comentarios:

Publicar un comentario