SciELO - Scientific Electronic Library Online

 
vol.20 número4MUREM: Un método multiplicativo de regresión para estimar el esfuerzo de desarrollo de softwareReconocimiento de clases de aeronaves con base en patrones del ruido en el despegue índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay artículos similaresSimilares en SciELO

Compartir


Computación y Sistemas

versión On-line ISSN 2007-9737versión impresa ISSN 1405-5546

Comp. y Sist. vol.20 no.4 Ciudad de México oct./dic. 2016

https://doi.org/10.13053/cys-20-4-2387 

Regular Articles

Validación de la triangulación Delaunay empleando algebra geométrica conforme

Delaunay Triangulation Validation Using Conformal Geometric Algebra

Netz Romero1 

Ricardo Barrón-Fernández1 

1Instituto Politécnico Nacional, Centro de Investigación en Computación, México. jnromero@correo.uam.mx, rbarron@cic.ipn.mx.


Resumen

Cuando la triangulación Delaunay se realiza en forma incremental, la etapa más importante, es la reconstrucción de los triángulos cuando se inserta aleatoriamente un nuevo punto en la red. Para ello existen diferentes técnicas, de la cual utilizaremos la validación del "círculo vacío" descrita por Boris Deloné, nuestro objetivo es utilizar el Álgebra Geométrica Conforme (AGC) para realizar dicha validación. Cambiaremos de ambiente matemático para demostrar las ventajas de las entidades geométricas que nos propone el AGC y emplearlas en un módulo que valide dicha triangulación.

Palabras clave: Álgebra geométrica conforme; círculo vacío; triangulación Delaunay

Abstract

When Delaunay triangulation is performed in an incremental fashion, different steps are involved in the process. Within those steps "reconstruction" is the most important stage when a new point is randomly inserted. Although there are several techniques to perform this reconstruction, one of the most relevant is a validation technique called "empty circle", described by Boris Deloné. In this paper, we focus on the use of the Conformal Geometric Algebra (CGA) to perform such validation. In addition, the proposal includes a mathematical environment change to show the advantages of using CGA's geometric entities and use them inside a module for validating the triangulation.

Keywords: Conformal geometric algebra; empty circle; Delaunay triangulation

1. Propuesta del trabajo

La importancia del empleo del AGC en el cómputo geométrico respecto a problemas relacionados con Triangulaciones Delaunay y Diagramas de Voronoi ha empezado a tomar importancia. Las ventajas de tomar entidades geométricas y poder representarlas como vectores nos provee de fórmulas cortas y con sentido intuitivo geométrico. Además se pueden tomar operadores con diferentes objetos y realizar operaciones fáciles de entender. En el trabajo de Zonnenberg 1 resuelve el problema de la triangulación Delaunay y del diagrama de Voronoi, para ello utiliza conceptos del AGC y los aplica en un software dedicado a algoritmos de cómputo geométrico, llamado CGAL 2. Leo Dorst et al. 3 proponen un ejercicio para construir los diagramas de Voronoi a partir de una triangulación Delaunay utilizando los algoritmos de elevación con su software GA Sandbox y GAViewer 4. Implementado el algoritmo de elevación mencionado, se resuelve en el trabajo de Linwang Yuan et al. 5 quienes desarrollan un software llamado CAUSTA, donde utilizan las propiedades del Álgebra Geométrica para elaborar herramientas útiles para los SIG. De lo anterior, o emplean software existente para resolver los enigmas del AGC o no llegan a detalles de la implementación. La intención de este trabajo es comenzar con el concepto básico de la triangulación Delaunay utilizando una matemática más intuitiva y analizando las opciones para realizar las operaciones con las entidades básicas sin el empleo de una herramienta de software.

Se realiza un ejemplo simple pero poderoso en el sentido que da validez a la triangulación sin llegar a triangular la estructura. Para ello escogemos un algoritmo de construcción sencillo que funciona paso a paso y resulta ideal para analizar solamente un área local de reconstrucción de triángulos, con base en la relación que hay entre un punto y el círculo. Esta relación es la que queremos llevar a otro dominio para aprovechar las entidades que nos proporciona el AGC, más sin embargo este principio que se plantea es la base para que en un futuro trabajo no se utilicen las intersecciones de líneas o planos como lo describen los trabajos anteriores y proponer una triangulación sin triángulos. Además el triángulo resulta un objeto difícil de implementar y sin ecuaciones que lo describan perfectamente, a diferencia de una esfera que resulta fácil de representar y es idónea en el campo de la geometría.

2. Introducción

La triangulación puede ser contemplada desde diferentes puntos de vista, nos enfocaremos como una forma de subdividir un área empleando triángulos. Si se quiere generalizar la subdivisión para un espacio con d dimensiones arbitrarias, se tomará en cuenta el simplejo que es análogo a las d dimensiones de un triángulo. Para nuestro caso nos enfocaremos a un espacio de dos dimensiones y la triangulación que construiremos será única ya que el método para conectar los puntos arbitrarios en forma de triángulos tiene que cumplir con la condición de Delaunay. Dicha condición establece que ningún punto debe estar contenido en una circunferencia circunscrita en cada triángulo, establecida por el matemático ruso Boris Deloné 6, quien en su forma francesa Delaunay le da el nombre a la triangulación. En la Fig. 1 se aprecia una triangulación Delaunay, que se considera una forma única de realizar el mallado sin que las aristas que unen los vértices se crucen.

Fig. 1 Una triangulación Delaunay 

Las áreas más comunes para realizar aplicaciones con la triangulación Delaunay fuera del cómputo geométrico son: modelado digital del terreno, métodos de los elementos finitos, robótica, visualización científica, gráficas por computadora, visión por computadora y Sistemas de Información Geográfica por mencionar algunas. Y por citar algunas referencias de SIG con aplicaciones en triangulaciones tenemos 7, 8, 9.

Antes de que se establecieran los conceptos matemáticos de la triangulación Delaunay, en 1843 William R. Hamilton introduce el álgebra de los cuaterniones, llegando a concretar un espacio de tres dimensiones representado por tres valores. Un año después del trabajo de Hamilton, Hermann Grassmann 10 publica su obra "Teorema de la Extensión" donde expresa su visión matemática para la geometría, pero su trabajo no fue reconocido como debería ser en su tiempo. Una de sus mejores aportaciones fue la definición de un nuevo producto llamado actualmente como producto exterior. Para finales del siglo XIX William K. Clifford 11 observó que las ideas del producto exterior de Grassmann y los cuaterniones de Hamilton se pueden relacionar para obtener el producto escalar y exterior en un nuevo concepto llamado producto geométrico. Sin embargo, no fue hasta los años de 1980 cuando David Hestenes 12 quien reconoció la importancia del álgebra geométrica y a partir de ahí se generaron trabajos de investigación en diversas áreas como la física, robótica, visión por computadora y otros campos de las ciencias computacionales 13. Con la idea de reformular algunos problemas geométricos el modelo conforme se presenta como una alternativa al espacio euclidiano, sin dejar sus propiedades atrás.

El esquema geométrico que presenta nos da la facilidad de trabajar con puntos e hiperesferas que nos ayudarán a manejar las condiciones Delaunay para cualquier dimensión y en una forma simple y sencilla. Solamente resolveremos la condición Delaunay utilizando el Álgebra Geométrica Conforme, y escribiendo algunas rutinas en un lenguaje de programación demostrando el uso de la matemática alterna.

3. Condición Delaunay

Entre los algoritmos más comunes para construir la triangulación Delaunay se encuentra el incremental 14, 15, los de barrido 16 y el divide y vencerás 17, 18. La propiedad principal que hace única a la triangulación Delaunay TD construida a partir de un conjunto finito de puntos, es que ningún punto en el plano este contenido en el circumcírculo de cualquier triángulo de la TD. En la Fig. 2 se aprecia un ejemplo donde un triángulo cumple con la propiedad del círculo vacío y en la otra donde el circumcírculo de un triángulo contiene un vértice de otro triángulo. En el trabajo de Lawson 19 demuestra que cualquier triangulación puede ser transformada a la TD siempre y cuando se cumpla la propiedad del círculo vacío. Lo anterior se define también como el "método de flip" 20 donde se define la legalidad de un triángulo.

Fig. 2 La condición Delaunay puede mostrarse como: (a) Triangulación legal (b) Triangulación ilegal 

Uno de los algoritmos para realizar la construcción de la triangulación Delaunay que nos parece adecuado para poner en prueba la condición Delaunay será el de Bowyer-Watson 21, 22. El algoritmo, se agrega secuencial y aleatoriamo de Bowyer-Watson funciona de manera incrementalente cada punto a la TD. Para reconstruir la triangulación debido al nuevo punto, es necesario encontrar los circuncírculos donde cae dicho punto. Para ello no es necesario barrer todos los circuncírculos de la triangulación, ya que llevará a una complejidad 0(n2). y tendrá un costo computacional muy alto. Por lo que primero es necesario encontrar solamente el triángulo afectado por el punto insertado. El trabajo de Watson 22 menciona una complejidad de 0(n1.5)., mientras que el propuesto por Mucke 23 obtiene una complejidad cercana a 0(n1.3)., para localizar el punto en la estructura triangular. Una vez encontrado el triángulo, éste y sus vecinos son candidatos para ver cuales circuncírculos contienen al punto. Los circuncírculos seleccionados, como se muestran en la Fig. 3, establecen los triángulos que serán eliminados, dejando un hueco en el cual se triangulará con base en el nuevo punto. En la Fig. 4 se observa el resultado de la reconstrucción de la triangulación.

Fig. 3 Algoritmo Bowyer-Watson, se seleccionan los circuncírculos afectados por el punto insertado 

Fig. 4 Algoritmo Bowyer-Watson, reconstrucción de los triángulos eliminados porque su circuncírculo fue afectado por el nuevo punto 

4. Álgebra geométrica conforme

Consideremos el espacio conforme como una mejora del espacio euclidiano. De tal manera que el espacio euclidiano estará embebido en un espacio de mayor dimensión, donde las dimensiones extras tendrán propiedades especiales que nos ayudarán a crear entidades geométricas. El término conforme nos indica que se preservan los ángulos y sus propiedades se nos presentan como una alternativa al espacio euclidiano para resolver problemas geométricos 24, 25. Si deseamos trabajar con objetos geométricos en 3D, tendremos que utilizar un espacio euclidiano en ℝ3, por lo que el espacio conforme requiere de cinco dimensiones. Una razón de este cambio es poder formular los problemas más intuitivamente en un espacio con dos dimensiones de más. El AGC utiliza tres vectores euclidianos básicos e1, e2 y e3, cuentan con dos adicionales e+ y e_, y al elevarlos al cuadrado toman los valores de 1 y -1 respectivamente. Obtenemos la siguiente relación:

e0=12e--e+,    y     e=12e-+e+,

donde el primero representa el origen euclidiano y el segundo representa el punto al infinito.

Con las propiedades del producto geométrico y del producto exterior, el AGC nos provee de entidades geométricas básicas que tienen dos presentaciones la IPNS (Inner Product Null Space) y la OPNS (Outer Product Null Space), la lista de entidades geométricas se observa en la Tabla 1 y éstas representaciones son duales.

Tabla 1 Entidades del AGC 

Entidad Representación IPNS Representación OPNS
Punto 𝑃 = 𝒙 + (1/2)𝒙2𝑒 + 𝑒0.
Esfera 𝑆 = 𝑃 −(1/2)𝑟2𝑒. 𝑆 = 𝑃1 ⋀ 𝑃2 ⋀ 𝑃3 ⋀ 𝑃4.
Plano 𝜋 = 𝒏 + 𝑑𝑒. 𝜋 = 𝑃1 ⋀ 𝑃2 ⋀ 𝑃3 ⋀ 𝑒.
Círculo Z = 𝑆1𝑆2. 𝑍 = 𝑃1 ⋀ 𝑃2 ⋀ 𝑃3.
Línea 𝐿 = 𝜋1 + 𝜋2. 𝐿 = 𝑃1 ⋀ 𝑃2 ⋀ 𝑒∞.
Par de puntos 𝑃𝑝 = 𝑆1 ⋀ 𝑆2 ⋀ 𝑆3. 𝑃𝑝 = 𝑃1 ⋀ 𝑃2.

En la representación OPNS, con el producto exterior ∧ se pueden construir entidades geométricas a partir de la entidad punto P (de las cuales están constituidas), como la esfera, círculo y un par de puntos. Y si incluye el vector que representa el punto al infinito se puede representar el plano o la línea. Como ejemplo, para la esfera S definida en la representación IPNS se puede definir también por cuatro puntos P.

Donde x y n representan entidades en d dimensiones, por ejemplo x se obtiene por la siguiente combinación básica de vectores:

x=x1e1+x2e2++xded

5. Álgebra geométrica conforme con la condición Delaunay

Cabe aclarar que estamos empleando el concepto de esfera para poder generalizar la condición Delaunay en cualquier dimensión. Podemos construir una triangulación Delaunay en dos dimensiones o más y para ello la esfera como elemento del AGC puede cumplir. Sin embargo las explicaciones y ejemplos que trabajaremos serán para una triangulación en dos dimensiones (como se ha comentado), sin dejar de usar el término esfera, el cual también se puede reducir a un círculo.

5.1. Punto y la esfera

Necesitamos solamente de dos objetos geométricos que son el punto y la esfera para realizar la validación de la condición Delaunay. El punto P se definen en la forma IPNS como:

P=x+12x2e+e0. (1)

El punto original x Єd, donde x2 se define como el producto escalar.

x2=x12+x22++xd2. (2)

Una esfera S en la forma IPNS, se puede representar por un punto en el centro de la esfera y radio r, como se muestra:

S=P-12r2e, (3)

si el punto P es reemplazado por (1), tenemos:

S=x+12x2+r2e+e0. (4)

5.2. Construcción de la esfera

Una vez que se localiza el triángulo afectado por el nuevo punto, es importante construir los semicírculos de los triángulos cercanos al triángulo afectado. Con el objetivo de identificar los círculos que contienen al nuevo punto insertado, ver Fig. 3. Para ello es necesario calcular el centro y radio como característica de cada círculo, donde un círculo se puede construir con un mínimo de tres puntos siempre y cuando no sean colineales, ver Fig. 5a. Un círculo se puede representar en la forma OPNS como:

Z*=P1   P2    P3, (5)

si la triangulación Delaunay se realizara en tres dimensiones sería necesario trabajar con esferas que se pueden construir a partir de cuatro puntos siempre y cuando no sean coplanares, ver Fig. 5b. La esfera en la forma OPNS se representa como:

S*=P1   P2    P3    P4. (6)

Fig. 5 (a) Construcción de un círculo con 3 puntos (b) Construcción de una esfera con 4 puntos 

En la matemática del AGC resulta fácil la implementación de un círculo o esfera a partir de tres o cuatro puntos respectivamente, pero para ello necesitamos de un visualizador como: GAViewer 12 y CLUCalc 26. O si el trabajo es realizar un algoritmo expresado con AGC y poder trabajar las ecuaciones (5) y (6) es necesario utilizar un compilador como el Gallop 27, 28, que trabaja eficientemente este tipo de operaciones. Muchas veces es importante que el programador no conozca los detalles que hay detrás de las matemáticas, por eso las herramientas de software mencionadas ocultan las operaciones de matrices o sistemas lineales.

Sin embargo, haciendo dichas herramientas computacionales de lado, trabajaremos dentro de las operaciones para construir esferas y las operaciones que puedan existir entre dos entidades como el punto y la esfera. Por lo que realizaremos un módulo que calcule el centro y radio de un círculo utilizando un ajuste por mínimos cuadrados dentro del Álgebra Geométrica. Necesitaremos de tres puntos para obtener las características del círculo, esos tres puntos son: Pi Є ℝ2, i Є {1,2,3}, el punto se representa como (1) y la esfera como (3). El producto escalar provee la medida de distancia y por medio de un ajuste por mínimos cuadrados de:

i=13PiS=i=13pisi-12pi2-12s-r22, (7)

encontrando el mínimo de (7) e igualando a cero, nos proporciona un sistema de tres ecuaciones y tres incógnitas, cuyo sistema es:

i=13pi,1pi,1i=13pi,2pi,1-i=13pi,1i=13pi,1pi,2i=13pi,2pi,2-i=13pi,2-i=13pi,1-i=13pi,2i=131s=12i=13pi2pi,112i=13pi2pi,212i=13pi2 (8)

Si deseamos encontrar el centro y radio de una esfera la ecuación (8) será de 4x4.

A continuación, se muestra un segmento de código en lenguaje de programación java que resuelve el ajuste de un círculo.

Código 1 Sección encargada de obtener el radio y centro de un círculo a partir de tres puntos 

5.3. Determinar si un punto está dentro de una esfera

El concepto importante, es identificar en cuáles semicírculos tiene contenido el nuevo punto que ha sido insertado para generar los nuevos triángulos en la TD. En el AGC usaremos el producto punto entre un punto y una esfera para determinar si está dentro, en o fuera de la esfera. Sea un punto P y sea S una esfera, el producto punto de estos dos cuerpos geométricos es:

PS=p+12p2e+e0s+12s2+r2e+e0,

se reduce a:

PS=-12s-p2+12r2. (9)

El resultado del producto punto de un punto con una esfera multiplicado por -2, se identifica con la potencia de un punto:

-2PS=s-p2-r2. (10)

Se identifican las siguientes relaciones:

  • - Si PS > 0, P está dentro del círculo (Fig. 6a),

  • - Si PS = 0, P está en el contorno del círculo (Fig. 6b),

  • - Si PS < 0, P está fuera del círculo (Fig. 6c).

Fig. 6 Ubicación de un punto con respecto a un círculo 

Enseguida se muestra un segmento de código en java para determinar si un punto cae dentro de un círculo o no.

Código 2 Sección que evalúa la condición Delaunay 

6. Algoritmo

El tipo de triangulación Delaunay en el que estamos enfocados, es el que se implementa en forma incremental insertando punto por punto, para ello es necesario varias estructuras de datos que nos permitirán un mejor eficiencia durante su construcción y la ubicación del punto a insertar.

Lo importante es entender la relación entre la esfera y el simplejo, para nuestro caso será la dualidad entre el círculo y el triángulo. Para el caso de dos dimensiones, se construirá un círculo con tres puntos, los mismos que conforma el triángulo (ver Fig. 7a). Las aristas que comparten los triángulos, se especifican con el segmento de línea delimitado por dos puntos que comparten dos círculos (ver Fig. 7b); por ejemplo en la Fig. 7b el círculo de la derecha es un círculo frontera

Fig. 7 Relación entre el círculo y triángulo, y con respecto a la arista que comparten 

6.1. Propuesta de un algoritmo completo

Para que nuestro algoritmo logre una complejidad 0(n log n) es necesario mejorar el algoritmo caminante, donde Mucke 23 alcanza una complejidad de 0(n13). Para ello, primero se tendrá que utilizar una estructura de datos del tipo de tabla Hash, que se empleará para la búsqueda de los elementos de puntos y esferas, donde su performance es de 0(1) siempre que los datos estén distribuidos uniformemente. Para localizar el nuevo punto en la estructura se utilizará una estructura de tipo árbol KD, la cual nos garantiza la complejidad deseada. En la Fig. 8 se muestran los pasos importantes del algoritmo para realizar la triangulación con base en una estructura circular. El AGC nos ayuda a identificar los círculos afectados (segundo paso del algoritmo) y también nos permite construir los círculos (cuarto paso del algoritmo). Para obtener los vecinos cercanos al punto de inserción se necesita realizar una rutina que extrae los puntos de los círculos afectados (tercer paso del algoritmo) y otra rutina para catalogar los círculos frontera que son necesarios para reconocer las aristas que comparten los triángulos (cuarto paso del algoritmo). El algoritmo se repite cada que se procede a insertar un nuevo punto.

Fig. 8 Algoritmo completo para realizar la triangulación Delaunay con base en círculos 

Una de las ideas del presente trabajo yace en el concepto utilizado por el trabajo de Bowyer-Watson, donde usan los circuncírculos para reconstruir la triangulación por el nuevo punto. Nosotros proponemos toda una estructura de círculos, los cuales presentan una dualidad con los triángulos, y de esta forma hacer las operaciones mediante el AGC. Una de las ventajas del álgebra conforme es trabajar con puntos (P) y círculos (Z) como objetos geométricos en toda la estructura y auxiliarmente ir triangulando.

6.2. Triangulación cuando se inserta un punto

A continuación, se realiza un ejemplo práctico del funcionamiento de nuestro algoritmo con el procedimiento incremental para la construcción de la triangulación Delaunay, con el principio de los círculos para un caso de dos dimensiones. Primeramente, se tiene una triangulación con base en las propiedades de círculos, a continuación se agrega un nuevo punto a la estructura inicial y se identifican los círculos afectados por dicho punto, ver Fig. 9a. Los círculos seleccionados se eliminan de la estructura y también las aristas internas, ver Fig. 9b. Posteriormente, se crean los nuevos círculos alrededor del nuevo punto como en la Fig. 9c, para finalmente construir las aristas internas con las propiedades de los círculos, ver Fig. 9d.

Fig. 9 Metodología para realizar la triangulación cuando cae un nuevo punto 

De esta forma se realiza la triangulación con la llegada de un nuevo punto.

La construcción de la triangulación Delaunay se propone realizarla a través de círculos y no de triángulos, posteriormente se aplica la relación entre ellos para construir las aristas correspondientes. Si nos comparamos con la metodología más conocida para realizar la triangulación de un nuevo punto, se utiliza el "método de flip" que maximiza el ángulo mínimo de los triángulos afectados para que se cumpla la condición Delaunay. Sin embargo, el cálculo de funciones trigonométricas requiere de un alto costo computacional y se continúa con el empleo de triángulos que son difíciles de construir geométricamente, en especial cuando las dimensiones se incrementan.

6.3. Contribuciones y ventajas

Actualmente la mayoría de los problemas en el cómputo Geométrico se resuelven utilizando la geometría Euclidiana. A pesar de que el álgebra geométrica es una herramienta matemática que ya tiene tiempo de haberse desarrollado, todavía se desconoce y son algunos especialistas en ciencias de la ingeniería y físicos quienes les han dado un mayor uso. Como lo hemos mencionado a lo largo del trabajo, el AGC nos proporciona una manera eficaz de entender un espacio geométrico; por lo que la importancia de esta herramienta será utilizar operaciones intuitivas entre las hiperesferas y los puntos. Para nuestro caso emplearemos círculos, los que se utilizarán en el algoritmo para crear las triangulaciones Delaunay. Es por ello que contribuimos con una forma alterna de construcción donde existen operaciones uniformes entre cuerpos geométricos, a diferencia del uso de los triángulos.

Por simplicidad es eficaz el uso de hiperesferas en cualquier dimensión, ya que se pueden representar solamente por su centro y radio. Mientras que el triángulo o simplejo en dos dimensiones está conformado por tres vértices, tres aristas y una superficie, para el tetraedro o simplejo en tres dimensiones será necesario cuatro vértices, seis aristas, cuatro caras y un volumen. Los elementos requeridos para un n-simplejo son de 2n+1 - 1. elementos. También es conveniente usar los conceptos de esferas porque presentan una ventaja en el costo computacional. Saber si un punto está dentro o fuera de un triángulo requiere el uso de determinantes (ecuación 11), y para los círculos utilizamos una operación sencilla (ecuación 10). El problema se complica conforme las dimensiones crecen, ya que encontrar un punto dentro de un tetraedro (ecuación 12) resulta complicado a diferencia de una esfera (ecuación 10). Como se aprecia, encontrar un punto dentro de una hiperesfera siempre es el mismo problema, independientemente de la dimensión en la que se trabaje. En la siguiente sección se explica esta ventaja a más detalle.

7. Ventajas de la esfera vs triángulo

Se ha observado que la operación es simple para validar la triangulación Delaunay y muestra una gran ventaja a diferencia de encontrar un punto al interior de un triángulo. Si tenemos un punto Q = (x, y) y un triángulo con vértices en A = (x1, y1), B = (x2, y2) y C = (x3, y3). Para determinar si el punto Q está dentro o fuera del triángulo (ver Fig. 10) podemos emplear el criterio de signo de los siguientes determinantes D(A,B,Q), D(A,Q,C) y D(Q,B,C). Por ejemplo sea el primer determinante:

DA, B,Q=x1y11x2y21xy1. (11)

Fig. 10 Punto dentro o fuera de un triángulo 

Para ello se observan varios cálculos, y la situación se complica cuando las dimensiones crecen, si queremos resolver la validación para una triangulación Delaunay en 3D, es necesario saber si el punto está dentro o fuera de un tetraedro (ver Fig. 11). Para ello es necesario usar cuatro determinantes de la forma D(A,B,C,Q), D(A,B,Q,D), D(A,Q,C,D) y D(Q,B,C,D). Sea el primer determinante de la forma:

DA, B,C,Q=x1y1z11x2y2z21x3xy3yz3z11, (12)

mientras que para cualquier dimensión en el AGC siempre se usará la ecuación 10.

Fig. 11 Punto dentro o fuera de un tetraedro 

8. Conclusiones y trabajo a futuro

La motivación de este trabajo es resaltar una opción matemática diferente para realizar las validaciones en la triangulación Delaunay, con la ayuda de entidades geométricas que nos proporciona el AGC. Se logra comprender la operación necesaria para conocer si un punto está dentro o fuera de un círculo, ya que el AGC proporciona operaciones sencillas sobre sus entidades punto y esfera. Los cambios que empleamos para usar círculos en vez de triángulos, presenta una ventaja geométrica de construcción en la estructura y además en el costo computacional, como lo hemos explicado anteriormente.

La idea posterior es construir totalmente la triangulación Delaunay en el ámbito del AGC, con el principio de utilizar la entidad esfera en vez de un triángulo y aprovechar todas las operaciones existentes. Además se beneficia de las características de la esfera, como sus ecuaciones representativas y lo simple que resulta implementarlo solamente con centro y radio. A diferencia del simplejo que es el resultado de varias figuras geométricas y se complica conforme crece en dimensiones.

Agradecimientos

Este trabajo fue realizado gracias al apoyo del Instituto Politécnico Nacional a través del proyecto SIP-20160828.

Referencias

1. Zonnenberg, C. (2007). Conformal Geometric Algebra Package. Master thesis, Utrecht University. [ Links ]

2. The Computational Geometry Algorithms Library. http://www.cgal.org/Links ]

3. Dorst, L., Fontijne, D., & Mann, S. (2007). Geometric Algebra for Computer Science: an object oriented approach to geometry. Morgan Kaufman publishers, pp. 415-417. [ Links ]

4. Geometric Algebra for Computer Science and Object Oriented approach for Geometry. http://www.geometricalgebra.net/index.htmlLinks ]

5. Yuan, L., Yu, Z., Chen, S., Luo, W., Wang, Y., & Lü, G. (2010). CAUSTA: Clifford Algebra-based Unified Spatio-Temporal Analysis. Transactions in GIS, 14, pp. 59-83. [ Links ]

6. Deloné, B. (1934). Sur la sphere vide. Bulletin of the Academy of Sciences of the U.S.S.R, 6, pp. 793-800. [ Links ]

7. Park, D., Cho, H., & Kim, Y. (2001). A TIN compression method using Delaunay triangulation. Int. J. Geographical Information Science, Vol. 15, No. 5, 255-269. [ Links ]

8. Kang, I., Kim, T., & Li, K. (1997). A spatial data mining method by Delaunay triangulation. 5th ACM int. workshop on Advances in GIS, pp. 35-39. [ Links ]

9. Heller, M. (1990). Triangulation algorithms for adaptive terrain modeling. Proc. 4th Internat. Sympos. Spatial Data Handling, pp. 163-174. [ Links ]

10. Grassmann, H. (1844). Linear Extension Theory (Die Lineale Ausdehnungslehre), translated by L. C. Kannenberg in the Ausdehnungslehre of 1844 and Other Works, Open Court Publ. [ Links ]

11. Clifford, W.K. (1878). Applications of Grassmann's Extensive Algebra. American Journal of Mathematics, Vol. 1, No. 4, pp. 350-358. [ Links ]

12. Hestenes, D. & Sobczyk, G. (1984). Clifford Algebra to Geometric Calculus. Reidel Publ. Co., Dordrecht/Boston. [ Links ]

13. Bayro, E. (2005). Handbook of Computational Geometry for Pattern Recognition, Computer Vision, Neurocomputing and Robotics. Springer-Verlag, Berlin Heidelberg. [ Links ]

14. Guibas, L. J. & Stolfi, J. (1985). Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams. ACM Transactions on Graphics, Vol. 4, No. 2, pp. 74-123. [ Links ]

15. Guibas, L. J., Knuth, D., & Sharir, M. (1992). Randomized incremental construction of Delaunay and Voronoi diagrams. Algorithmica, Vol. 7, No. 1, pp. 381 -413. [ Links ]

16. Fortune, S. (1987). A sweep-line algorithm for Voronoi diagrams. Algorithmica , 2, pp. 153-174. [ Links ]

17. Lee, D. T. & Schachter, B. J. (1980). Two algorithms for constructing a Delaunay triangulation. Journal of Computer and Information Sciences, Vol. 9, No. 3, pp. 219-242. [ Links ]

18. Dwyer, R. A. (1987). A faster divide-and-conquer algorithm for constructing Delaunay triangulations. Algorithmica , 2, pp. 137-151. [ Links ]

19. Lawson, C.L. (1977). Mathematical software III; Software for C1 surface interpolation. Academic Press, pp. 161-94. [ Links ]

20. Berg, M., Kreveld, M., Overmars, M., & Schwarzkopf, O. (1997). Computational geometry, algorithms and applications. Berlin: Springer. [ Links ]

21. Bowyer, A. (1981). Computing Dirichlet tessellations. The Computer Journal, Vol. 24, No. 2, pp. 162-166. [ Links ]

22. Watson, D. (1981). Computing the n-dimensional Delaunay tessellation with application to Voronoi polytopes. The Computer Journal , Vol. 24, No. 2, pp. 167-172. [ Links ]

23. Mücke, E.P., Saias, I., & Zhu, B. (1999). Fast randomized point location without preprocessing in two- and three-dimensional Delaunay triangulations. Computational Geometry, 12, pp. 63-83. [ Links ]

24. Hildenbrand, D. (2013). Foundations of Geometric Algebra Computing. Springer-Verlag, Berlin Heidelberg. [ Links ]

25. Perwass, C. (2009). Geometric Algebra with Applications in Engineering. Springer-Verlag, Berlin Heidelberg. [ Links ]

26. Interactive Visualization. http://www.clucalc.infoLinks ]

27. GAALOP Geometric Algebra Algorithms Optimizer. http://www.gaalop.de. [ Links ]

28. Schwinn, C., Hildenbrand, D., Stock, F., & Koch, A. (2010). Gaalop 2.0 - a geometric algebra algorithm compiler. International Workshop on Computer Graphics, Computer Vision and Mathematics, 2, pp. 1 -8. [ Links ]

Recibido: 28 de Junio de 2016; Aprobado: 05 de Diciembre de 2016

Autor de correspondencia Netz Romero.

Netz Romero obtuvo el título de Ingeniero Físico y el grado de Maestro en Ciencias de la Computación en la Universidad Autónoma Metropolitana, México, en 1999 y 2003 respectivamente. Ocupando varios puestos en empresas privadas y como docente. Actualmente es alumno del programa de Doctorado en Ciencias de la Computación en el CIC del Instituto Politécnico Nacional. Áreas de interés son el cómputo geométrico y el cómputo paralelo.

Ricardo Barrón Fernández obtuvo el título de Matemático en la Facultad de Ciencias de la UNAM en 1985. Es Maestro en Ciencias en Ingeniería de Cómputo y Doctor en Ciencias de la Computación por el Instituto Politécnico Nacional, en 1998 y 2006 respectivamente. Trabaja como profesor e investigador en el laboratorio de Inteligencia Artificial del Centro de Investigaciones en Computación del IPN. Las áreas de interés son las matemáticas computacionales y las aplicaciones de la inteligencia artificial

Creative Commons License Este es un artículo publicado en acceso abierto bajo una licencia Creative Commons