6.1.5. tiempo de cálculo - unal.edu.co

41
68 buena alternativa para una reconstrucción efectiva mediante el método propuesto. 6.1.5. Tiempo de cálculo El tiempo de cálculo del particionamiento cuadrilateral es muy bajo. Este no de- pende del número de muestras en los conjuntos de datos, sino del número de puntos de control en el grafo de Delaunay y del número de ejes en el borde del modelo. Incluso para esquemas con un número elevado de puntos de control el tiempo de cálculo del algoritmo no supera 1 segundo. Para 58 puntos de control y 570 vecindarios, el cálculo del particio- namiento tardó 0,032s. 6.2. Parametrización El proceso de parametrización es el más importante en un esquema de reconstruc- ción mediante funciones NURBS. Se analizaron los diferentes pasos que componen el méto- do propuesto sobre los modelos de prueba escogidos. 6.2.1. Selección de puntos de control en el plano El método de selección de puntos de control en el plano no presentó errores de cál- culo, esto debido a que se trata de una construcción completamente geométrica que no de- pende de los datos en el modelo a reconstruir. Al igual que en el particionamiento, el tiempo de cálculo de la selección de puntos de control en el plano durante el proceso de parame- trización es muy pequeño, este no depende del número de datos en el modelo a reconstruir, sino del número de cuadriláteros en el particionamiento, del número de ejes en el borde del modelo y del número de divisiones que se requieran en ambas direcciones paramétricas. En una prueba con 494 vecindarios, y 100 divisiones en cada dirección paramétrica (10000 puntos de control sobre cada vecindario), el tiempo promedio del cálculo para el caso re- gular fue de 0,878ms, y para el caso irregular de 6,84ms. El tiempo total de cálculo fue de

Upload: others

Post on 30-Apr-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6.1.5. Tiempo de cálculo - unal.edu.co

68

buena alternativa para una reconstrucción efectiva mediante el método propuesto.

6.1.5. Tiempo de cálculo

El tiempo de cálculo del particionamiento cuadrilateral es muy bajo. Este no de-

pende del número de muestras en los conjuntos de datos, sino del número de puntos de

control en el grafo de Delaunay y del número de ejes en el borde del modelo. Incluso para

esquemas con un número elevado de puntos de control el tiempo de cálculo del algoritmo

no supera 1 segundo. Para 58 puntos de control y 570 vecindarios, el cálculo del particio-

namiento tardó 0,032s.

6.2. Parametrización

El proceso de parametrización es el más importante en un esquema de reconstruc-

ción mediante funciones NURBS. Se analizaron los diferentes pasos que componen el méto-

do propuesto sobre los modelos de prueba escogidos.

6.2.1. Selección de puntos de control en el plano

El método de selección de puntos de control en el plano no presentó errores de cál-

culo, esto debido a que se trata de una construcción completamente geométrica que no de-

pende de los datos en el modelo a reconstruir. Al igual que en el particionamiento, el tiempo

de cálculo de la selección de puntos de control en el plano durante el proceso de parame-

trización es muy pequeño, este no depende del número de datos en el modelo a reconstruir,

sino del número de cuadriláteros en el particionamiento, del número de ejes en el borde del

modelo y del número de divisiones que se requieran en ambas direcciones paramétricas.

En una prueba con 494 vecindarios, y 100 divisiones en cada dirección paramétrica (10000

puntos de control sobre cada vecindario), el tiempo promedio del cálculo para el caso re-

gular fue de 0,878ms, y para el caso irregular de 6,84ms. El tiempo total de cálculo fue de

Page 2: 6.1.5. Tiempo de cálculo - unal.edu.co

69

0,625s.

6.2.2. Indexación cuadrada

El tiempo de cálculo de un algoritmo de búsqueda completa en los procesos de

proyección 3D, (punto a punto y punto a triángulo) es muy alto, debido que se deben

encontrar los datos objetivos en un conjunto extenso para cada punto de control en la para-

metrización planar. En el caso de la proyección punto a punto se debe encontrar el punto

más cercano a cada dato en la parametrización sobre la nube de puntos. Para solucionar este

problema se generó un algoritmo de indexación cuadrada que se encarga de almacenar los

puntos de control (o los triángulos) en una estructura matricial de a cuerdo a su posición en

el plano, de esta manera, para un punto dado en la parametrización solo se debe analizar un

conjunto reducido de muestras que corresponde a los puntos en la nube (o los triángulos en

la reconstrucción) que se encuentran más cercanos a dicho punto y por tanto son candidatos

a proyección.

Figura 6.7: Parametrización - indexación cuadrada

En la figura 6.7 se aprecia claramente la diferencia en el tiempo de cálculo entre la

indexación cúbica y la búsqueda sobre el espacio de datos completo. Mientras el tiempo de

Page 3: 6.1.5. Tiempo de cálculo - unal.edu.co

70

cálculo aumenta exponencialmente con el número de divisiones para la búsqueda en todo

el espacio, en la indexación cúbica presenta un comportamiento mucho más estable con

tiempos de cálculo muchísimo menores.

6.2.3. Proyección punto a punto

La estrategia de proyección punto a punto puede ser aplicada incluso cuando ex-

isten errores en la reconstrucción inicial del modelo a reconstruir, esto debido a que la

aproximación de la profundidad depende del punto más cercano a cada partición en la para-

metrización.

El algoritmo presenta errores de parametrización, cuando existen puntos sobre la

nube que no tienen normales asociadas. Para estos casos específicos se analizaron los pun-

tos más cercanos hasta encontrar un candidato válido.

(a) Parametrización Incorrecta (b) Corregida

Figura 6.8: Parametrización punto a punto

La figura 6.8 muestra una reconstrucción para el modelo buda mediante el método

Page 4: 6.1.5. Tiempo de cálculo - unal.edu.co

71

de parametrización punto a punto. En la figura 6.8(a) se aprecia un error en la reconstruc-

ción producto de una parametrización incorrecta debido a la presencia de puntos que no

tienen una normal asociada. La figura 6.8(b) muestra la reconstrucción corregida para el

modelo buda.

Figura 6.9: Parametrización - tiempo de cálculo

La figura 6.9 muestra la gráfica de tiempo de cálculo contra el número de divi-

siones en la parametrización para la proyección punto a punto en los conjuntos de datos

rostro, buda y máscara. En la gráfica se aprecia como el tiempo de cálculo se eleva para

un número mayor de divisiones, sin embargo, este resulta menor al calcular la proyección

punto a triángulo en el conjunto de datos cerámica que en el conjunto válvula. Esto se debe

al algoritmo de indexación cuadrada implementado para reducir el tiempo de cálculo del

algoritmo.

6.2.4. Proyección punto a triángulo

La metodología de proyección punto a triángulo presentó errores de cálculo en pres-

encia de agujeros en los conjuntos de datos. Para este caso particular, no se puede encontrar

el triángulo más cercano al punto analizado para aproximar la proyección, debido a que el

Page 5: 6.1.5. Tiempo de cálculo - unal.edu.co

72

algoritmo está basado sobre el hecho de que cada punto de control en la parametrización

está contenido en por lo menos un triángulo de la proyección planar de la reconstrucción

inicial.

En la proyección punto a triángulo, cuando un modelo tiene pocos triángulos en la

reconstrucción inicial, y se parametriza con un número elevado de divisiones y cuadriláteros,

la reconstrucción se asemeja a una voxelización triangulada, esto debido a que la proyec-

ción es una aproximación de la profundidad hacia un modelo triangulado, y al ser muy fina,

su apariencia final será la del modelo triangulado original.

Figura 6.10: Parametrización punto a triángulo

En la figura 6.10 se aprecia un acercamiento en la parametrización del modelo ros-

tro, el cual cuenta solo con 2849 triángulos. La reconstrucción parece discreta y triangulada,

aunque tiene un número elevado de datos (125 cuadriláteros y 100 divisiones en ambas di-

recciones paramétricas para un total de 1125000 polígonos).

Page 6: 6.1.5. Tiempo de cálculo - unal.edu.co

73

Figura 6.11: Parametrización - Tiempo de Cálculo

La figura 6.11 muestra la gráfica de tiempo de cálculo contra el número de divi-

siones en la parametrización para la proyección punto a triángulo en los conjuntos de datos

rostro, válvula y cerámica. La tendencia de los tiempos es similar en la proyección punto a

punto, sin embargo, con un número mayor de divisiones, el cálculo de la proyección punto

a triángulo es más rápido.

6.2.5. Error en la aproximación

Se realizó una prueba de error aumentando el número de divisiones en la parame-

trización sobre un mismo esquema de particionamiento con 9 cuadriláteros y los mismos

puntos de control en todas las pruebas.

La figura 6.12 muestra como en un esquema de particionamiento constante, al au-

mentar el numero de divisiones en la parametrización, el error en la aproximación dis-

minuye considerablemente. Esto de debe a que al elevar la densidad de los datos en la

parametrización, se cuenta con un mayor número de puntos de control.

Page 7: 6.1.5. Tiempo de cálculo - unal.edu.co

74

Figura 6.12: Parametrización - error de aproximación

6.3. Continuidad

Se analizó la continuidad entre las fronteras de los parches NURBS de forma cual-

itativa, al comparar las reconstrucciones resultantes de los modelos de prueba mediante la

técnica propuesta aplicando el proceso de ajuste de continuidad.

La figura 6.13 muestra el efecto visual del ajuste de la continuidad para la re-

construcción del modelo válvula (con 18 cuadriláteros en el particionamiento). Las figuras

6.13(a) y 6.13(b) ilustran el efecto del ajuste de continuidad y de la falta de esta respec-

tivamente, para una parametrización con 10 divisiones en cada dirección paramétrica. De

forma similar, las figuras 6.13(c) y 6.13(d) ilustran el efecto del ajuste de continuidad, para

una parametrización con 50 divisiones en cada dirección paramétrica. Estos dos ejemplos

muestran claramente como el efecto visual del ajuste de continuidad se hace más impor-

tante para un nivel de parametrización bajo.

Page 8: 6.1.5. Tiempo de cálculo - unal.edu.co

75

(a) (b)

(c) (d)

Figura 6.13: Continuidad en modelo válvula

6.3.1. Tiempo de cálculo

Al igual que en el particionamiento, el tiempo de cálculo del análisis de continuidad

es considerablemente bajo y este no depende de la cantidad de datos en el modelo a recon-

struir sino del número de cuadriláteros en el particionamiento y del número de divisiones

en cada uno de estos. En una prueba con 734 cuadriláteros y 100 divisiones por partición,

el tiempo de cálculo del análisis de continuidad fue de 0,316s.

Page 9: 6.1.5. Tiempo de cálculo - unal.edu.co

76

6.4. Optimización

Se optimizó el error de ajuste en una reconstrucción del modelo cerámica con dos

esquemas de particionamiento diferentes (con 9 y 14 cuadriláteros) y con 3 niveles de para-

metrización diferentes (con 12, 15 y 18 divisiones en ambas direcciones paramétricas).

Divisiones error promedio error optimizado tiempo (s)

12 0.2518 0.1057 475.2

15 0.1218 0.0484 636.3

18 0.1123 0.0462 787.5

Tabla 6.2: Optimización con 9 vecindarios

La tabla 6.2 muestra el error promedio de ajuste, el error optimizado y el tiempo

de cálculo total para el proceso de optimización en el esquema de particionamiento con 9

vecindarios.

Divisiones error promedio error optimizado tiempo (s)

12 0.1602 0.0672 836.4s

15 0.1052 0.0418 1120.3s

18 0.0923 0.0379 1432.8s

Tabla 6.3: Optimización con 14 vecindarios

La tabla 6.3 muestra los resultados para un esquema de particionamiento con 14

vecindarios.

Page 10: 6.1.5. Tiempo de cálculo - unal.edu.co

77

6.5. Reconstrucción completa

El proceso de reconstrucción completo fue aplicado a los modelos cerámica pre-

colombina y máscara.

Figura 6.14: Reconstrucción cerámica precolombina

La figura 6.14 muestra la reconstrucción del modelo cerámica mediante el método

propuesto. Para esta reconstrucción se emplearon 11 puntos de control seleccionados man-

ualmente. El particionamiento cuenta con 53 cuadriláteros, de los cuales 14 son irregulares

y pertenecen al borde exterior del modelo; el tiempo de cálculo del particionamiento fue

de 0,016s. Se emplearon 30 divisiones en cada dirección paramétrica para el proceso de

parametrización, la cual fue calculada mediante el método de proyección punto a punto; el

tiempo de cálculo de la parametrización fue de 4,797s. En la reconstrucción inicial, el error

en la aproximación fue de 0,0123, el cual luego de aplicar el proceso de optimización se

redujo hasta 0,0046; el tiempo de cálculo de la optimización fue de 7832s.

Page 11: 6.1.5. Tiempo de cálculo - unal.edu.co

78

Figura 6.15: Reconstrucción máscara

La figura 6.15 muestra la reconstrucción del modelo máscara mediante el méto-

do propuesto. Para esta reconstrucción se emplearon 8 puntos de control seleccionados

automáticamente. El particionamiento cuenta con 32 cuadriláteros, de los cuales 20 son ir-

regulares, 12 pertenecen al borde exterior del modelo, y 8 pertenecen a la caracterización

de los agujeros; el tiempo de cálculo del particionamiento fue de 0,012s. Se emplearon 20

divisiones en cada dirección paramétrica para el proceso de parametrización, la cual fue

calculada mediante el método de proyección punto a triángulo, el tiempo de cálculo de la

parametrización fue de 23,478s. En la reconstrucción inicial, el error en la aproximación

fue de 0,0532, el cual luego de aplicar el proceso de optimización se redujo hasta 0,0154,

el tiempo de cálculo de la optimización fue de 4254s.

Page 12: 6.1.5. Tiempo de cálculo - unal.edu.co

Capítulo 7

Conclusiones y Trabajo Futuro

7.1. Conclusiones

Las funciones NURBS presentan una formulación matemática unificada que permite

su fácil implementación y digitalización, además, el alto grado de adaptación y la capaci-

dad de aproximación local hacen de las superficies NURBS una herramienta poderosa para

generar modelos computacionales de objetos tridimensionales a partir de datos de rango.

El método de particionamiento propuesto puede ser aplicado a conjuntos de datos

compuestos por uno a más imágenes de rango. El esquema empleado permite crear vecin-

darios irregulares que rastrean la curvatura cambiante de bordes irregulares de forma libre,

además, el análisis de agujeros en el particionamiento es un aporte que no se encontró en la

literatura relacionada.

Mediante la estrategia de parametrización diseñada, es posible generar redes de

control matriciales ordenadas sobre las cuales se pueden aplicar directamente funciones

paramétricas como NURBS o B-Splines. Además, mediante los métodos de proyección im-

plementados se puede aproximar la información tridimensional de vistas parciales de mo-

delos tridimensionales.

79

Page 13: 6.1.5. Tiempo de cálculo - unal.edu.co

80

El esquema de ajuste de continuidad C l emoleado es simple y generalizante, de-

bido a que emplea un modelo simplificado de superficies NURBS con una distribución uni-

forme de la parametrización y un número igual de puntos de control en ambas direcciones

paramétricas.

Las representación mediante curvas y superficies NURBS con funciones base Splines

cúbicas es ideal para el proceso de aproximación, debido a que estas presentan condiciones

de continuidad adecuadas que garantizan las derivadas continuas de primer y segundo orden

sobre todo el intervalo paramétrico. Además tienen un efecto de filtrado pasabajos deseable

y la aproximación de la representación final es lo suficientemente local para ajustarse a cur-

vas y superficies de forma libre.

La optimización lineal planteada por Elsaesser para funciones NURBS, presenta fa-

cilidades de cálculo, sin embargo, el costo computacional del algoritmo es demasiado alto.

El modelo de reconstrucción propuesto ofrece un método de multiresolución direc-

to, ya que es posible ajustar el nivel de detalle de la parametrización variando la cantidad

de puntos de control para obtener modelos mas detallados o mas livianos.

Al concentrar los puntos de control del grafo de Delaunay de la partición, es posible

resaltar detalles específicos del modelo a reconstruir, debido a que el rastreo de los puntos

de control sobre la parametrización va a se más fino en zonas donde los puntos de control

se encuentren más agrupados.

Page 14: 6.1.5. Tiempo de cálculo - unal.edu.co

81

7.2. Trabajo Futuro

Desarrollar un método de particionamiento volumétrico efectivo que permita la re-

construcción de modelos completos mediante funciones NURBS, considerando los agujeros

en el particionamiento o la parametrización. Para dicho particionamiento es necesario en-

contrar una metodología que permita mapear la distribución superficial de la nube de puntos

o de una reconstrucción inicial del modelo para poder integrar la información volumétrica

del modelo.

Implementar una metodología de selección automática de puntos de control para el

grafo de Delaunay en el particionamiento, con el fin de concentrar la parametrización en

las zonas con mayor curvatura, y de esta forma representar de manera fina los detalles en

objetos de forma libre.

Diseñar o aplicar una estrategia de optimización que permita ajustar los parámetros

de las funciones NURBS con un costo computacional menor.

Page 15: 6.1.5. Tiempo de cálculo - unal.edu.co

Bibliografía

[1] F. Blais. Review of 20 years of range sensor development. Electronic Imaging,

13:231–240, 2004.

[2] Yang Chen and M. Gerard. Surface description of coplex objects from multiple range

images. Technical report, Institute for Robotics and Intelligent Systems, University of

Southern California, 1994.

[3] J. Valencia y J. Gómez. Registro de imágenes de rango para la reconstrucción de

modelos faciales. 2004.

[4] C. Dorai, G. Wang, A. Jain, and C. Mercer. From images to models: Automatic 3d

object model construction from multiple views. In In Proceedings of the 13th IAPR

International Conference on Pattern Recognition, 1996.

[5] J.B. Gómez y F. Prieto. Reconstrucción de superficies a partir de imágenes de rango.

2004.

[6] Jhon William Branch Juan Bernardo Gómez, Flavio Prieto. Reconstrucción de su-

perficies a partir de imágenes de rango, revisión de la literarua. Technical report,

Universidad Nacional de Colombia, 2004.

[7] M. de Berg y M. van Kreveld. Computational Geometry, Algorithms and Applications.

Springer Verlag, second edition edition, 2000.

[8] P.J. Besl and N.D. McKay. A method for registration of 3d shapes. 1992.

82

Page 16: 6.1.5. Tiempo de cálculo - unal.edu.co

83

[9] T. Wayne. The NURBS Book. Springer-Verlag, New York, 2nd edition, 1997.

[10] B Curless. New Methods for Surface Reconstruction from Range Images. PhD thesis,

Stanford University, 1997.

[11] H Hoppe. Surface reconstruction from unorganized points. Computer Graphics,

1992.

[12] H Hoppe. Mesh optimization. Computer Graphics, 1993.

[13] Tony DeRose Hugues Hoppe. Piecewise smooth surface reconstruction. Technical

report, University of Washington, 1994.

[14] C.W. Anderson and Crawford-Hines. Fast generatión of nurbs surfaces from polygo-

nal mesh models of human anatomy. Technical Report Technical Report CS-99-101,

Department of Computer Science, Colorado State University, Fort Collins, Colorado

State University, 2000.

[15] Randrianarivony, M. y Brunnett, G. Parallel implementation of surface reconstruction

from noisy samples. 2002.

[16] R. Fisher, R. Craig. Constrainde object reconstruction incorporating free-form sur-

faces. Technical report, University of Edinburgh, 2001.

[17] Matthias Eck y Hugues Hoppe. Automatic reconstruction of b-spline surfaces of ar-

bitrary topological type. In : Proceedings of the 23rd annual conference on Computer

graphics and interactive techniques, pages 325–334. ACM Press, 1996.

[18] In Kyu Park. Sang Uk Lee. Constructing nurbs surface model from scattered and un-

organized range data. Second International Conference on 3D Imaging and Modeling,

1999.

[19] In Kyu Park. Sang Uk Lee. Geometric model from scattered 3d range data. Seoul

National University, 1998.

Page 17: 6.1.5. Tiempo de cálculo - unal.edu.co

84

[20] C. Loop. Smooth spline surfaces over irregular meshes. Computer Graphics, pages

303–310, 1994.

[21] J. Peters. Constructing cl surfaces of arbitrary topology using bicuadric and bicubis

splines. Designing Fair Curves and Surfaces, pages 277–293, 1994.

[22] Kai Hormann. From scattered samples to smooth surfaces. Technical report, Califor-

nia Institute of Technology, 2002.

[23] K. Maeda, M. y Kumamaru. Shapes modeling of 3d objects based on a hybrid repre-

sentation using extended b-spline surface model. IEEE Pattern Recognition, 2002.

[24] Flavio Prieto Ernesto Cuartas Morales. Optimización de superficies nurbs mediante

el algoritmo de levemberg-marquardt. Technical report, Universidad Nacional de

Colombia sede Manizales, 2004.

[25] David M. Mount. Voronoi diagrams on the surface of a polyhedron. Technical Report

Technical Report CAR-TR-121, University of Maryland, Department of Computer

Science, 1985.

[26] T. Hoppe H. Eck, M. DeRose. Multiresolution analysis of arbitrary meshes. Computer

Graphics, pages 173–782, 1995.

[27] Xianfeng Gu Ying He, Miao Jin and Hong Qin. A c1 globally interpolatory spline of

arbitrary topology. Technical report, Stony Brook University, 2004.

[28] Xianfeng Gu Ying He, Miao Jin and Hong Qin. Automatic shape control of triangular

b-splines of arbitrary topology. Technical report, Stony Brook University, 2005.

[29] Roth, G. y Boulanger, P. Cad model building from multiple range images. In Pro-

ceedings of Vision Interface 98, pages 274–281, June 1998.

[30] G. Farin. Shape. Springer-Verlag, New York, 3 edition, 2001.

Page 18: 6.1.5. Tiempo de cálculo - unal.edu.co

85

[31] Richard Hartley y Andrew Zisserman. Multiple View Geometry in computer vision.

Cambridge University, second edition edition, 2003.

[32] J. Peters. Smoothness, fairness and the need for better multi-sided patches. Technical

report, University of Florida, 2002.

[33] S. L. Lee y H. H. Tan. Smooth piecewise biquartic surfaces from quadrilateral con-

trol polyhedra with isolated n-sided faces. Computer Aided Desing, 27(10):741–758,

1995.

[34] Bernhard Elsaesser. Approximation whit Rational B-splines Curves and Surfaces. PhD

thesis, Vanderbilt Univessity, 1998.

[35] Farin Gerald. Curves and Surfaces for CAGD. Morgan Kaufmann Publishers, 5 edi-

tion, 2002.

[36] Robert P. y Linda, C. Generalized bernstein polynomials and symmetric functions.

2001.

[37] H. Xie and H. Qin. Automatic knot determination of nurbs for interactive geometric

design. In Proceedings of International Conference on Shape Modelling and Applica-

tions (SMI 2001), Nov 2001.

[38] Randrianarivony, M. y Brunnett, G. Parallel implementation of curve reconstruction

from noisy samples. 2002.

[39] M.G. Cox and M. Harris. Fixed and free knot univariate least-squares data approxi-

mation by polynomial splines. Technical Report Technical Report ISSN 1471-0005,

National Physical Laboratory, Queens Road, United Kingdom, 2002.

Page 19: 6.1.5. Tiempo de cálculo - unal.edu.co

Apéndice A

NURBS

Las curvas y superficies NURBS evolucionaron a partir del trabajo pionero de Pierre

Bézier quien planteó la formulación matemática de una clase de curvas paramétricas, para

crear gráficas en un ordenador, en el año de 1970 [9]. Sin embargo, las curvas de Bézier

presentan problemas de estabilidad y cálculo debido al alto grado de sus funciones base.

La formulación de las NURBS plantea una solución a este problema y añade otro tipo de

propiedades adicionales que se ilustrarán a lo largo de este capítulo anexo.

La digitalización mediante NURBS se ha convertido en un estándar en la industria

para la representación, diseño e intercambio de datos de información geométrica procesa-

dos por ordenador debido a sus excelentes cualidades [9, 14].

• Las NURBS brindan una base unificada para la representación de formas analíticas,

como secciones cónicas, superficies cuadráticas o entidades de forma libre como ros-

tros o modelos irregulares.

• Los algoritmos para el cálculo de las funciones NURBS son rápidos y numéricamente

estables.

• Las curvas y superficies NURBS son invariantes ante transformaciones geométricas

A–1

Page 20: 6.1.5. Tiempo de cálculo - unal.edu.co

A–2

comunes como traslaciones o rotaciones.

• Las funciones paramétricas NURBS tienen un alto grado de libertad lo cual permite

tener un control local de la representación.

A.1. Curvas y Superficies de Bézier

Los métodos más comunes de representación de curvas y superficies en mode-

lamiento geométrico son las ecuaciones implícitas y las funciones paramétricas [9]. La

ecuación implícita de una curva en el plano xy tiene la forma f(x, y) = 0. Esta ecuación

describe una relación implícita entre la coordenadas x y y de los puntos sobre la curva. En la

forma paramétrica, cada una de las coordenadas de un punto sobre la curva es representada

como una función explícita de un parámetro independiente.

C(u) = (x(u), y(u)) a ≤ u ≤ b (A.1)

Así, C(u) es una función valorada por la variable independiente u en el intervalo

paramétrico arbitrario [a, b], el cual usualmente está normalizado entre [0, 1]. De igual forma

una superficie definida por una ecuación implícita f(x, y, z) = 0 tiene una representación

paramétrica de la forma

S(u, v) = (x(u, v), y(u, v), z(u, v)) (A.2)

De las ecuaciones A.1 y A.2 se puede inferir que el proceso de parametrización

implica un cambio dimensional de Rn → Rn−k.

La parametrización planteada por Bézier en 1972 [35] se basa en los polinomios de

Bernstein de grado n para crear curvas y superficies paramétricas que dependen de unos

puntos de control. Una curva de Bézier de grado n tiene la forma

Page 21: 6.1.5. Tiempo de cálculo - unal.edu.co

A–3

C(u) =n∑

i=0

Bi,n(u)Pi (A.3)

En donde Bi,n(u) son las funciones base. Estas tienen la forma característica de los

polinomios de Bernstein de grado n [36]. Su formulación es la siguiente

Bi,n(u) =n!

i! (n− i)!ui (1− u)n−i (A.4)

Las superficies de Bézier se definen como

S(u, v) =n∑

i=0

m∑j=0

Bi,n(u)Bj,m(v)Pi,j (A.5)

De las ecuaciones A.3 y A.5, se puede apreciar que el grado de las funciones base

que generan las curvas y superficies de Bézier depende del número de puntos de control

con los cuales se genera la representación. Esta forma paramétrica presenta problemas de

cálculo en las funciones base cuando hay demasiados puntos de control (ecuación A.4).

Las curvas y superficies de Bézier se pueden extender a una forma racional en donde cada

punto de control Pi tiene asociado un peso wi (ecuación A.11). Las B-Splines presentan una

solución al problema del orden elevado en las funciones base, haciendo que estas existan

solo en una parte del intervalo paramétrico.

A.2. Funciones Base Splines

Como se mencionó anteriormente, el orden de las funciones base en la expansión

polinomial de Bernstein utilizada por Bézier (ecuación A.4) depende del número de pun-

tos de control del modelo. Debido a ello, se necesitan funciones base de grado (n − 1)

para pasar una curva polinomial de Bézier a través de n puntos. Sin embargo, el cálculo de

funciones de orden elevado es ineficiente y numéricamente inestable. Este tipo de curvas

tienen problemas para ajustarse a algunas funciones complejas, además el control que se

Page 22: 6.1.5. Tiempo de cálculo - unal.edu.co

A–4

tiene sobre la aproximación cuendo existen demasiados puntos de control es pobre.

La solución a este problema es utilizar funciones base polinomiales por partes cono-

cidas como splines. Este tipo de funciones existen solo en una parte del intervalo paramétri-

co y dependen de algunos puntos de control, lo cual permite tener un control local de la

representación. Adicionalmente, el orden de estas funciones pede ser escogido según sea

conveniente. Las funciones base splines se definen de la siguiente manera:

Sea U = {u0, · · ·um} una secuencia no decreciente de números reales, i.e., ui ≤

ui+1, i = 0, · · · ,m− 1. Donde ui son llamados nodos (knots), y U es el vector de nodos.

La ith función base de grado p, denotada por Ni,p se define como

Ni,0(u) =

1 si ui ≤ t < ui+1

0 en caso contrario

Ni,p(u) =u− ui

ui+p − uiNi,p−1(u) +

ui+p+1 − u

ui+p+1 − ui+1Ni+1,p−1(u) (A.6)

A.2.1. Propiedades de las Funciones Base Splines

Las funciones base B-Splines tienen una serie de propiedades importantes que deter-

minan las características geométricas deseables que poseen las curvas y superficies NURBS.

• Ni,0(u) es una función escalón que es igual a cero excepto por el intervalo semi-

abierto u ∈ [ui, ui+1)

• Ni,p(u) = 0 si u está por fuera del intervalo [ui, ui+p+1). Propiedad de soporte local.

• En cualquier expansión de nodos dada, [ui, ui+1), por lo menos p + 1 de las Ni,p

funciones base son diferentes de cero. Distribución piramidal.

Page 23: 6.1.5. Tiempo de cálculo - unal.edu.co

A–5

• Ni,p(u) ≥ 0 para todo i, p, y u. No negatividad.

• En un intervalo arbitrario de nodos, [ui, ui+1),∑i

j=i−p Nj,p(u) = 1 para todo u ∈

[ui, ui+1). Partición de unidad.

• Todas las derivadas de Ni,p(u) existen al interior del intervalo dado por el vector

de nodos U (ecuación A.7). En un nodo n, Ni,p(u) es p − k veces continuamente

diferenciable, donde k es la multiplicidad del nodo n. Diferenciación continua.

• Ni,p(u) tienen exactamente un valor máximo (excepto para el caso en el que p = 0).

Máximo absoluto.

Figura A.1: Funciones base splines

En la Fig. A.1 se aprecian las funciones base de orden 3 generadas a partir del vector

de nodos U = {0 0 0 0 0, 25 0, 5 0, 75 1 1 1 1}.

A.2.2. Vector paramétrico de nodos

La distribución del vector paramétrico de nodos que genera las funciones base tiene

una gran influencia en el proceso de aproximación de las B-Splines. Este debe tener cuali-

Page 24: 6.1.5. Tiempo de cálculo - unal.edu.co

A–6

dades específicas que garantizan la convergencia de la parametrización.

Sea U un vector paramétrico de nodos de longitud m + p + 1, en donde m es el

número de puntos de control y p es el grado de las funciones base. U define la partición del

intervalo de variación del parámetro u, permitiendo ajustar la zona de influencia de cada

punto de control.

U = {u0 = . . . = up, up+1, . . . , um−1, um = . . . = um+p} (A.7)

• Los primeros y los últimos nodos en U deben tener multiplicidad p+1 para garantizar

la interpolación de los puntos de control inicial y final.

• El vector de nodos U es una secuencia no decreciente de números reales en donde

ui ≤ ui+1.

• Se deben calcular m funciones base de orden p que se requieren para aproximar una

B-Spline a m puntos de control.

La representación general para un vector de nodos en un intervalo paramétrico nor-

malizado entre [0, 1] esta dada por:

U = {0 . . . 0︸ ︷︷ ︸p+1

≤ up+1 ≤ up+2 ≤ . . . ≤ um−2 ≤ um−1 ≤ 1 . . . 1︸ ︷︷ ︸p+1

} (A.8)

La distribución de los nodos en el vector paramétrico U define los intervalos de

mapeo de las Funciones Base Splines y la distribución no uniforme de las funciones NURBS.

En la Fig. A.2 se aprecian las funciones base de orden 3 generadas a partir del vec-

tor de nodos no uniforme U = {0 0 0 0 0, 6 0, 6 0, 7 1 1 1 1}.

Page 25: 6.1.5. Tiempo de cálculo - unal.edu.co

A–7

Figura A.2: Funciones base con nodos no uniformes

A.3. B-Splines

Las curvas y superficies B-Splines surgen a partir de una combinación de las fun-

ciones base Splines (ecuación A.6) y los puntos de control a aproximar. Las propiedades de

las funciones base Ni,p(u) se transfieren a las curvas y superficies paramétricas B-Splines

con lo cual esta representación presenta solución a varios de los problemas que tienen la

aproximación con funciones de Bézier.

A.3.1. Curvas B-Splines

Una curva B-Spline de grado p está definida por

C (u) =n∑

i=0

Ni,p(u)Pi (A.9)

En donde Pi son los puntos de control, y Ni,p(u) son las funciones base B-Splines

de grado p.

Las B-Splines son una generalización de las funciones de Bézier, ya que si p = n y

Page 26: 6.1.5. Tiempo de cálculo - unal.edu.co

A–8

U = {0, . . . , 0, 1, . . . , 1}, entonces C(u) es una curva de Bézier (ecuación ??).

C(u) tiene un esquema de modificación local de forma tal que al mover el punto

de control Pi la curva cambiará solo en el intervalo [ui, ui+p+1), lo cual permite que las

B-Splines tengan un ajuste más fino sobre la aproximación que las curvas de Bézier. Esta

propiedad se debe a que las funciones base Ni,p(u) = 0 para todo u /∈ [ui, ui+p+1).

Las propiedades de continuidad y derivación de las funciones base Splines están

presentes en C(u) ya que esta es una combinación lineal de Ni,p (ecuación A.9). De esta

manera, C(u) es infinitamente diferenciable al interior de los intervalos definidos por el

vector de nodos U (ecuación A.7), y tiene por lo menos p − k derivadas continuas en un

nodo de multiplicidad k.

A.3.2. Superficies B-Splines

Una superficie B-Spline se obtiene al combinar linealmente una red bidireccional

de puntos de control Pi,j y los productos de las funciones base Splines Ni,p(u) y Nj,q(v)

definidas en los vectores nodo U y V respectivamente.

S (u, v) =n∑

i=0

m∑j=0

Ni,p(u)Nj,q(v)Pi,j (A.10)

Las superficies B-Splines conforman una representación unificada que tiene todas

las propiedades de continuidad y derivación de las funciones base Splines en ambas di-

recciones paramétricas. En las superficies B-Splines se genera un producto tensor de las

funciones base bivariadas que presenta capacidad de ajuste local y alta continuidad. El pro-

ducto tensor de las funciones base Ni,p(u)Nj,q(v) con orden p en la dirección u y q en la

dirección v está definido por los vectores de nodos normalizados

Page 27: 6.1.5. Tiempo de cálculo - unal.edu.co

A–9

U = {0, . . . , 0︸ ︷︷ ︸p+1

, up+1, . . . , un−1, 1, . . . , 1︸ ︷︷ ︸p+1

}

V = {0, . . . , 0︸ ︷︷ ︸q+1

, vq+1, . . . , vm−1, 1, . . . , 1︸ ︷︷ ︸q+1

}

para una red bidireccional de puntos de control Pi,j con n puntos de control en la

dirección u, y m en la dirección v de acuerdo a la ecuación A.6.

De forma análoga a las curvas B-Splines, las superficies tienen propiedades de con-

trol local dado que Ni,p(u)Nj,q(v) = 0, si (u, v) están por fuera del rectángulo [ui, ui+p+1)×

[vj , vj+q+1). La continuidad y las derivadas de S(u, v) provienen del producto tensor de sus

funciones base Ni,p(u)Nj,q(v). En particular, S(u, v) es p − k (q − k) veces diferenciable

en la dirección u (v) para un nodo u (v) de multiplicidad k. El producto tensor de las fun-

ciones base interpola las 4 esquinas de la red bidireccional de puntos de control Pi,j en una

superficie B-Spline.

A.4. B-Splines Racionales no Uniformes (NURBS)

A pesar de que la representación polinomial ofrece muchas ventajas, existen cier-

tos tipos de curvas y superficies cónicas importantes que no pueden ser representadas con

B-Splines. La solución a este problema es utilizar funciones racionales, ya que con estas es

posible definir matemáticamente todas las curvas y superficies cónicas.

Una curva polinomial en un espacio n-dimensional tendrá una representación racional

en un espacio (n + 1)-dimensional.

Siendo P = (x, y) un punto en el espacio euclídeo bidimensional (X, Y ), su repre-

sentación racional se extiende a un espacio tridimensional (X, Y,W ) donde W es la nueva

dimensión y Pw = (wx, wy,wz, w). P es obtenido nuevamente de Pw al dividir todas las

Page 28: 6.1.5. Tiempo de cálculo - unal.edu.co

A–10

Figura A.3: Proyección del plano racional W

coordenadas por la cuarta entrada W .

La forma racional de las curvas y superficies de Bézier están dadas por

C(u) =

n∑i=0

Bi,n(u)wiPi

n∑i=0

Bi,n(u)wi

y S(u, v) =

n∑i=0

m∑j=0

Bi,n(u)Bj,m(v)wi,jPi,j

n∑i=0

m∑j=0

Bi,n(u)Bj,m(v)wi,j

(A.11)

A.4.1. Propiedades de la representación racional con B-Splines

Las curvas y superficies NURBS cuentan con todas las propiedades de continuidad

y derivación de las B-Splines, pero proveen una capacidad de aproximación local aún may-

or. Esto se aprecia al modificar el peso wi, en una curva NURBS, asociado al punto de

control Pi, ya que este solo afecta a la curva en el intervalo u ∈ [ui, ui+p+1).

Page 29: 6.1.5. Tiempo de cálculo - unal.edu.co

A–11

(a) w = 1 (b) w = 3

(c) w = 10

Figura A.4: Superficies NURBS con diferentes pesos

En las figuras A.4(a), A.4(b) y A.4(c) se puede apreciar el efecto de la aproximación

local en una superficie NURBS, al variar el peso asociado a un punto de control.

Las funciones NURBS tienen un efecto de filtro pasabajos al aproximar un conjunto

de datos. La curva o superfice paramétrica tendrá un efecto suavizante en la aproximación

que depende del orden de sus funciones base. Mientras mayor sea el orden de las funciones

base, mayor será el efecto pasabajos de la parametrización sobre los datos de rango y por

lo tanto mayor será el error de la aproximación final. La representación racional no esta

definida para el espacio Wneg, por lo tanto se debe cumplir que wi ≥ 0 para todo i.

Page 30: 6.1.5. Tiempo de cálculo - unal.edu.co

A–12

A.4.2. Curvas y Superficies NURBS

Una curva NURBS de grado p está definida por la siguiente ecuación

C (u) =

n∑i=0

Ni,p(u)wiPi

n∑i=0

Ni,p(u)wi

(A.12)

Donde Ni,p(u) son las funciones base splines de grado p, Pi son los puntos de

control y wi son los pesos asociados a cada punto de control.

Figura A.5: Curva NURBS

La figura A.5 es una curva NURBS graficada con las librerías del OpenGL.

La ecuación general para las superficies paramétricas NURBS está dada por

S (u, v) =

n∑i=0

m∑j=0

Ni,p(u)Nj,q(v)wi,jPi,j

n∑i=0

m∑j=0

Ni,p(u)Nj,q(v)wi,j

(A.13)

Donde Ni,p(u)Nj,q(v) es el producto tensor de las funciones base B-Splines con

Page 31: 6.1.5. Tiempo de cálculo - unal.edu.co

A–13

grado p en la dirección paramétrica u, y grado q en la dirección v. Pi,j es la malla de puntos

de control, y wi,j son los pesos asociados a cada punto de control.

Figura A.6: Superficie NURBS

La figura A.6 es una superficie NURBS con sus normales graficada con las librerías

del OpenGL.

A.4.3. Grados de libertad

Las NURBS permiten adaptar curvas y superficies polinomiales tanto a representa-

ciones de forma libre como a formas geométricas comunes. Esto se logra gracias a los

grados de libertad que tienen las NURBS en su formulación matemática, los cuales per-

miten tener un control de aproximación local por medio de los pesos y puntos de control,

y un mapeo no uniforme de la parametrización por medio del vector paramétrico de nodos.

Los grados de libertad de las funciones NURBS a optimizar son:

• Puntos de control.

Page 32: 6.1.5. Tiempo de cálculo - unal.edu.co

A–14

• Pesos asociados a los puntos de control.

• Vectores paramétricos de nodos.

Para optimizar la aproximación mediante curvas y superficies NURBS se deben

modificar sus grados de libertad con el fin de minimizar la distancia entre la representación

paramétrica y el conjunto de datos.

La selección del vector paramétrico de nodos tiene gran influencia en el proceso de

aproximación mediante NURBS [37, 15, 38, 39].

Page 33: 6.1.5. Tiempo de cálculo - unal.edu.co

Apéndice B

Algoritmos de reconstrucción

Existen diversos métodos que permiten la construcción matemática o geométrica

de los diagramas de Voronoy y/o la triangulación de Delaunay. Los métodos algorítmicos

mas conocidos son: La construcción divide y conquista, línea de barrido, elevando hacia un

espacio 3D y los métodos incrementales.

Los algoritmos que presentan el mejor balance entre costo computacional y efec-

tividad de cálculo son los métodos incrementales.

A continuación se exponen los algoritmos que conforma la reconstrucción Incre-

mental de Delaunay implementada para el algoritmo de particionamieto.

B.1. Algoritmo de Delaunay

Al definir subdivisión maximal planar como:

Subdivisión S a la cual no es posible agregar un eje que conecte dos vértices sin

destruir su planaridad. Es decir, la introducción de cualquier eje que no está en S intersecta

B–1

Page 34: 6.1.5. Tiempo de cálculo - unal.edu.co

B–2

uno o mas ejes existentes en S.

Se define entonces una trangulación como cualquier subdivisión maximal planar

de un conjunto de puntos en el plano.

El grafo de Delaunay fue desarrollado por el matemático Ruso Boris Nikolaevich

Delone. Su método se basa en la disposición óptima de la trangulación en el sentido de

maximizar los mínimos ángulos en los triángulos de la subdivisión maximal planar.

Se implementó el método de triangulación planar de Delaunay para triangular con-

juntos planares de puntos.

Page 35: 6.1.5. Tiempo de cálculo - unal.edu.co

B–3

Algorithm 2 DelaunayIncremental(P)

Entradas: Conjunto de puntos p1, p2, . . . , pn ∈ P en el plano.

Salida: Triangulación de Delaunay T de P .

Paso 1:

Se genera un triángulo con vértices en p−1, p−2 y p−3 que contenga a P .

Se inicializa la triangulación T con el triángulo p−1 p−2 p−3.

InsertTriangle(p−1, p−2, p−3, T );

Paso 2:

para r = 1 hasta n haga

tint, eint =

WhereIsPoint(pr, T );

si pr se encuentra en el interior del triángulo tint entonces

InTriagle(tint, pr, T );

sino

si pr se encuentra sobre uno de los ejes de T entonces

OnEdge(eint, pr, T );

fin si

fin si

fin para

Page 36: 6.1.5. Tiempo de cálculo - unal.edu.co

B–4

Algorithm 3 WhereIsPoint(p, T )

Entradas: Punto p, triangulación T .

Salida: Triángulo tint, o eje eint que contiene al punto p.

t = T ;

mientras t haga

PointInTriangle(t, p);

si p pertenece al triángulo t entonces

Devolver tint = t;

sino

El triángulo t contiene 3 ejes, t = (e1, e2, e3)

InLine(e1, p);

InLine(e2, p);

InLine(e3, p);

si p pertenece a uno de los 3 ejes de t entonces

Devolver el eje eint ∈ t;

fin si

fin si

t = t → next

fin mientras

Page 37: 6.1.5. Tiempo de cálculo - unal.edu.co

B–5

Algorithm 4 PointInTriangle(t, p)

Entradas: Punto p, triángulo t.

Salida: Informa si el punto p se encuentra al interior de t.

El triángulo t tiene 3 vértices, t = (a, b, c);

FAB = (py − ay) (bx − ax)− (px − ax) (by − ay);

FBC = (py − by) (cx − bx)− (px − bx) (cy − by);

FCA = (py − cy) (ax − cx)− (px − cx) (ay − cy);

si FAB · FBC > 0 y FBC · FCA > 0 entonces

El punto p se encuentra al interior del triángulo t;

sino

El punto p NO se encuentra al interior del triángulo t;

fin si

Page 38: 6.1.5. Tiempo de cálculo - unal.edu.co

B–6

Algorithm 5 InLine(e, p)

Entradas: Eje e, punto p.

Salida: Informa si el punto p se encuentra sobre el eje e.

El eje e tiene 2 vértices, e = (a, b);

si ax = bx entonces

si px = ax = bx y py ∈ 〈ay, by〉 entonces

El punto p ∈ e;

sino

El punto p /∈ e;

fin si

fin si

si ay = by entonces

si py = ay = by y px ∈ 〈ax, bx〉 entonces

El punto p ∈ e;

sino

El punto p /∈ e;

fin si

sino

m = (by − ay)/(bx − ax);

r = m (px − ax)− (py − ay);

si r = 0 y px ∈ 〈ax, bx〉 entonces

El punto p ∈ e;

sino

El punto p /∈ e;

El punto p ∈ e;

fin si

fin si

Page 39: 6.1.5. Tiempo de cálculo - unal.edu.co

B–7

Algorithm 6 InTriangle(t, p, T )

Entradas:Triangulación de Delaunay T , Punto p, triángulo t que contiene a p.

El triángulo t tiene 3 vértices, t = (a, b, c);

Paso 1:

DeleteTriangle(t);

InsertTriangle(p, a, b);

InsertTriangle(p, b, c);

InsertTriangle(p, c, a);

Paso 2:

LegalizeEdge(p, a, b);

LegalizeEdge(p, b, c);

LegalizeEdge(p, c, a);

Page 40: 6.1.5. Tiempo de cálculo - unal.edu.co

B–8

Algorithm 7 OnEdge(e, p, T )

Entradas:Triangulación de Delaunay T , Punto p, eje e que contiene a p.

El eje e tiene 2 vértices, e = (a, b);

Paso 1:

Se encuentran los 2 triángulos q y t que contienen el eje e;

Se encuentran los vértices c ∈ q, c /∈ e y d ∈ t, d /∈ e;

Paso 2:

DeleteTriangle(q);

DeleteTriangle(t);

InsertTriangle(p, a, c);

InsertTriangle(p, c, b);

InsertTriangle(p, b, d);

InsertTriangle(p, d, a);

Paso 3:

LegalizeEdge(p, a, c);

LegalizeEdge(p, c, b);

LegalizeEdge(p, b, d);

LegalizeEdge(p, d, a);

Page 41: 6.1.5. Tiempo de cálculo - unal.edu.co

B–9

Algorithm 8 LegalizeEdge(r, a, b)

Entradas:Punto nuevo r, Puntos a, b ∈ e = (a, b) con e ∈ T .

Los puntos a y b generan el eje, e = (a, b);

Paso 1:

Se encuentran los 2 triángulos q y t que contienen los vértices a y b;

Se encuentra el vértice c ∈ q, c /∈ e;

si c = r entonces

Se encuentra el vértice k ∈ t, k /∈ e;

sino

k = c;

fin si

Paso 2:

si k está InCircle(r, a, b, k) entonces

DeleteTriangle(q);

DeleteTriangle(t);

InsertTriangle(r, k, a);

InsertTriangle(r, k, b);

LegalizeEdge(r, k, a);

LegalizeEdge(r, k, b);

fin si