Diseño y modificación de molde inverso para prótesis mediante herramientas computacionales
Texto completo
(2) PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA. DISEÑO Y MODIFICACION DE MOLDE INVERSO PARA PROTESIS MEDIANTE HERRAMIENTAS COMPUTACIONALES. MARÍA CONSUELO DÍAZ WICHMANN. Tesis presentada a la Comisión integrada por los profesores: LUCIANO CHIANG SÁNCHEZ DIEGO CELENTANO LUIS CERDA ORTIZ PABLO IRARRAZAVAL. Para completar las exigencias del grado de Magíster en Ciencias de la Ingeniería. Santiago de Chile, (Agosto, 2008).
(3) A mis Padres. ii.
(4) AGRADECIMIENTOS Agradezco a los protesistas del taller de prótesis y ortesis de la Teletón quienes estuvieron siempre dispuestos a ayudarnos y resolver nuestras dudas sobre la fabricación de prótesis. También agradezco el apoyo constante de mi profesor guía Luciano Chiang durante el desarrollo de este trabajo. Por último, quisiera agradecer a mis amigos y compañeros de Magíster por la ayuda y compañía durante este proceso.. iii.
(5) INDICE GENERAL Pág. DEDICATORIA........................................................................................................... ii AGRADECIMIENTOS .............................................................................................. iii RESUMEN .................................................................................................................. ix ABSTRACT ................................................................................................................. x 1.. INTRODUCCION .............................................................................................. 1. 2.. MARCO CONTEXTUAL .................................................................................. 4 2.1. Adquisición de Datos ................................................................................. 4 2.2. Marco teórico y arte previo ........................................................................ 7 2.3. Análisis de la solución propuesta ............................................................... 8. 3.. DESARROLLO DEL ALGORITMO .............................................................. 10 3.1. Etapa 1: Posicionamiento superficie secundaria ...................................... 12 3.1.1. Cálculo de normales....................................................................... 14 3.1.2. Posicionamiento Inicial.................................................................. 16 3.1.3. Rotación Tangencial ...................................................................... 19 3.1.4. Desplazamiento según la normal ................................................... 22 3.2. Etapa 2: Desplazamiento de puntos internos............................................ 24 3.2.1. Curva de intersección..................................................................... 25 3.2.2. Puntos internos ............................................................................... 35 3.2.3. Desplazamiento puntos internos .................................................... 37 3.3. Etapa 3: Suavización de bordes ................................................................ 39 3.3.1. Superficies de Bezier ..................................................................... 41 3.3.2. Generación de mallas ..................................................................... 43 3.3.3. Desplazamiento de puntos de borde .............................................. 53. 4.. PROGRAMACION E INTERACCION CON EL USUARIO ........................ 58. 5.. RESULTADOS ................................................................................................ 62. 6.. CONCLUSIONES ............................................................................................ 72 iv.
(6) 7.. GLOSARIO ...................................................................................................... 75. 8.. BIBLIOGRAFIA .............................................................................................. 78. 9.. ANEXOS .......................................................................................................... 80 Anexo A.. Superficies Geométricas Definidas ............................................. 80. Anexo B. Cálculo matrices M1 y M2 ........................................................... 81 Anexo C. Código programación función main ................................................. 89. v.
(7) INDICE DE FIGURAS Pág. Figura 1-1: Fabricación tradicional de molde inverso de socket .......................................... 3 Figura 2-1: Scanner Fastscan. Izquierda: Scanner modelo Fastscan Cobra. Derecha: superficie computacional 3D y triangulación de Delaunay .......................................... 4 Figura 2-2: Diagrama matrices Points (P) y Facets(F) ......................................................... 5 Figura 2-3: Representación gráfica de la nube de puntos y de los puntos Stylus en Matlab 6 Figura 2-4: Esquema 2D solución propuesta. Izquierda: superficie original. Derecha: superficie deformada ..................................................................................................... 8 Figura 2-5: Etapas de deformación ....................................................................................... 9 Figura 3-1: Punto Stylus seleccionado como punto de referencia del muñón .................... 11 Figura 3-2: Punto de referencia pP, de la herramienta Stylus y punto de referencia rP perteneciente a la matriz P .......................................................................................... 11 Figura 3-3: Puntos pertenecientes al vector triangulación de p, ∆p, ................................... 12 Figura 3-4: Matriz P y vector triangulación ∆p .................................................................. 12 Figura 3-5: Esquema etapa 1: Posicionamiento de la superficie secundaria....................... 13 Figura 3-6: Algoritmo de Gourand...................................................................................... 15 Figura 3-7: Punto de referencia rP y los puntos rPi pertenecientes a su triangulación ........ 15 Figura 3-8: Ángulos de azimuth (θ) y elevación (γ) para un vector cualquiera r. .............. 17 Figura 3-9: Izquierda: Posición inicial superficie Q. Derecha: Posición superficie Q luego de la primera rotación y traslación .............................................................................. 18 Figura 3-10: Izquierda: Posición de presión o carga superficie Q. Derecha: Posición de descarga superficie Q .................................................................................................. 19 Figura 3-11: Posicionamiento inicial de un toroide sobre el punto de referencia rP........... 20 Figura 3-12: Posicionamiento superficie Q, luego de rotación tangencial y traslado al punto de referencia pP. Izquierda: Punto de observación lateral. Derecha: Punto de observación en dirección normal................................................................................. 22 Figura 3-13: Desplazamiento en dirección normal de un paraboloide sobre el muñón (dn=7mm) .................................................................................................................... 23 Figura 3-14: Desplazamiento en dirección normal de un toroide sobre el muñón (dn =5mm) ..................................................................................................................................... 23 Figura 3-15: Esquema etapa 2 de deformación: Desplazamiento punto internos ............... 24 Figura 3-16: pin está “lo suficientemente cerca de CI” si al menos un punto perteneciente a su triangulación se encuentra fuera de la superficie Q ................................................ 25 Figura 3-17: Punto 1 trayectoria rP – pin ............................................................................. 28 Figura 3-18: Punto 2 trayectoria rP – pin ............................................................................. 29 Figura 3-19: Punto 3 trayectoria rP – pin ............................................................................. 29 Figura 3-20: Corrección de trayectoria rP – pin ................................................................... 31 Figura 3-21: Izquierda: ejemplo punto c1 y los puntos c1j correspondientes a su triangulación. Derecha: punto c2 y puntos c2j.............................................................. 32 Figura 3-22: Ejemplo de distribución de puntos Cin. .......................................................... 33 Figura 3-23: Puntos internos superficie P. .......................................................................... 33 Figura 3-24: Curva de intersección Cin aproximada entre las superficies P y Q ................ 34 Figura 3-25: Trayectoria rP – pin y vector Cin ..................................................................... 34 vi.
(8) Figura 3-26: Puntos internos superficie P. Niveles 1 y 2 .................................................... 36 Figura 3-27: Puntos internos superficie P. Izquierda: niveles 1, 2 y 3. Derecha: niveles 1-5 ..................................................................................................................................... 37 Figura 3-28: Esquema matriz P, reemplazo punto pi por punto pI. ..................................... 39 Figura 3-29: Esquema etapa 3 de deformación: Suavización de la región de borde .......... 39 Figura 3-30: Región de borde (RB) definida por los vectores Ck ....................................... 41 Figura 3-31: Superficie de Bezier ....................................................................................... 42 Figura 3-32: Mallas de 4x4 sobre la Región de Borde (RB)............................................... 43 Figura 3-33: Región de Intersección, Detalles A, B y C ..................................................... 44 Figura 3-34: RB, detalle A. Ordenamiento primeros 3 puntos del vector C1. .................... 45 Figura 3-35: RB, detalle A. Ordenamiento vector C2, selección del primer punto ............. 46 Figura 3-36: RB, Sección B, Problema 1 ............................................................................ 48 Figura 3-37: Posibles caminos para ordenar C6 en el ejemplo de la Figura 3-32 ............... 49 Figura 3-38: RB, detalle C. Problema 2 .............................................................................. 50 Figura 3-39: Vecindad o triangulación de p extendida. ...................................................... 50 Figura 3-40: Generación de mallas de Bezier ..................................................................... 52 Figura 3-41: Malla y superficie de Bezier........................................................................... 53 Figura 3-42: Desplazamiento de puntos pertenecientes a RI hacia la superficie de Bezier 55 Figura 3-43: Región de intersección y mallas. Arriba: mallas generadas antes del desplazamiento de puntos. Abajo: mallas generadas luego del desplazamiento de puntos .......................................................................................................................... 55 Figura 3-44: Intersección de paraboloide sobre Superficie P o muñón. Arriba: Antes de suavización de bordes. Abajo: Después de suavización de bordes ............................. 56 Figura 3-45: Intersección de paraboloide sobre Superficie P o muñón. Arriba: Antes de suavización de bordes. Abajo: Después de suavización de bordes ............................. 57 Figura 4-1: Diagrama de flujo principal del software y los puntos de interacción con el usuario ......................................................................................................................... 59 Figura 4-2: Elección punto Stylus o punto de referencia .................................................... 60 Figura 4-3: Menú superficie secundarias ............................................................................ 60 Figura 4-4: Ingreso de parámetros de un toroide ................................................................ 61 Figura 4-5: Ingreso de la Magnitud de desplazamiento ...................................................... 61 Figura 5-1: Modificación de descarga con forma de paraboloide sobre superficie digitalizada .................................................................................................................. 62 Figura 5-2: Modificación de carga con forma de esfera sobre superficie digitalizada ....... 63 Figura 5-3: Modificación de descarga con forma de elipsoide sobre superficie digitalizada ..................................................................................................................................... 64 Figura 5-4: Digitalización muñón y molde inverso tradicional, visualización software Fastscan ....................................................................................................................... 65 Figura 5-5: Digitalización muñón y molde inverso tradicional, visualización software Matlab.......................................................................................................................... 66 Figura 5-6: Modificaciones de carga y descarga sobre molde inverso tradicional ............. 67 Figura 5-7: Parámetros geométricos del toroide ................................................................. 68 Figura 5-8: Etapa de posicionamiento de superficie y rotación tangencial. Parámetros: α = 75° ............................................................................................................................... 68 Figura 5-9: Etapa de desplazamiento en dirección normal. Parámetros: dn = 8mm ........... 68 vii.
(9) Figura 5-10: Proceso de carga sobre rótula. Arriba: superficie original. Centro: posicionamiento superficie geométrica. Abajo: superficie modificada ...................... 69 Figura 5-11: Parámetros geométricos del paraboloide ingresados por el usuario............... 70 Figura 5-12: Etapa de posicionamiento de superficie y rotación tangencial. Parámetros: α = 45° ............................................................................................................................... 70 Figura 5-13: Etapa de desplazamiento en dirección normal. Parámetros: dn = 17mm ....... 71 Figura 5-14: Proceso de descarga zonas óseas. Arriba: superficie original. Centro: posicionamiento superficie geométrica. Abajo: superficie modificada ...................... 71 Figura 9-1: Vectores n1 y n2 y sus respectivos ángulos de azimuth (θ) y elevación (γ) ...... 81 Figura 9-2: Rotación de n2 en torno al eje Z ....................................................................... 82 Figura 9-3: Cambio sistema de referencia auxiliar ............................................................. 83 Figura 9-4: Rotación de 1n1 en torno a 1Y ........................................................................... 83 Figura 9-5: Cambio a sistema de referencia absoluto ......................................................... 84. viii.
(10) RESUMEN. Hoy en día, la fabricación de órtesis y prótesis (O&P) se realiza de forma manual, moldeando el muñón con el yeso para crear un molde positivo de éste, el que luego se modifica manualmente para crear el molde inverso del socket. En países más desarrollados, son utilizados software CAD (Computer Aided Design) que permiten realizar el diseño de este molde inverso mediante herramientas computacionales. El uso de software de CAD para el diseño de socket de O&P permite por un lado reducir los tiempos de toma de molde y de diseño, además de ahorrar material y una alta capacidad de almacenamiento de datos. Sin embargo, una de las desventajas es que el proceso se ve despersonalizado al trabajar con librerías de moldes predefinidas previamente los que son ajustados a las dimensiones del paciente. El objetivo de este trabajo fue crear un algoritmo que permitiera modificar el molde digitalizado del paciente en cualquier punto y con la forma que el usuario escoja entregando una mayor libertad en el diseño del socket. Este trabajo se enfocó en las modificaciones de carga y descarga sobre el muñón. Usando distintas superficies geométricas, las que son determinadas por el usuario, se modifica el molde digital en la región deseada. Para esto, se posiciona la superficie geométrica y los puntos que quedan dentro de la curva generada por la intersección entre ambas superficies se desplazan hacia la superficie geométrica generando así la deformación. Por último se suavizan los borden para eliminar aristas pronunciadas. Mediante este método se lograron realizar modificaciones en varios puntos de la superficie digitalizada con la limitación de que al intersectar las superficies debe generarse una curva cerrada. En cuanto a la aplicación se logró el objetivo de entregar libertad al usuario de realizar modificaciones en cualquier punto deseado. La utilidad que estas modificaciones puedan prestar al diseño final sólo podrá evaluarse a través del uso del socket por parte de un paciente.. ix.
(11) ABSTRACT Today, the manufacture of prosthetic and orthotic (P & O) is done by hand, shaping the stump with plaster to create a positive mold of it, which is manually modify to create the inverse mold of the socket. In developed countries is used CAD software (Computer Aided Design) allowing the design of this inverse mold by computational tools. The use of CAD software for the design of socket of P & O allows, on one hand, reduce the times of moldmaking and design, in addition to saving material and high-capacity data storage. However, one disadvantage is that the process looks impersonalized to work with libraries mold previously presets that are adjusted to the dimensions of the patient. The objective of this work was to create an algorithm that would allows changing the scanned mold of the patient at any point and with the shape that the user chooses to give greater freedom in designing the socket. This study focused on the changes of installation and removal on the stump. Using different geometric surfaces, which are determined by the user, is modify the mold in the digital desired area. For this purpose, is positioned geometric surface and points inside of the generated curve by the intersection between both surfaces are moving toward the geometric surface, thus generating the deflection. Finally, it softened the edges to eliminate sharp edges. By this method is able to make modifications at various points of the scanned area, with the limitation that when the surfaces intersect must generate a closed curve. With regard to the application, was able to deliver freedom to make changes to the user at any desired point. The utility that these changes could give to the final design will only be assessed through the use of the socket by a patient.. x.
(12) 1. INTRODUCCION A mediados de la década de los ’80, gracias al rápido avance y la drástica reducción de costos de la tecnología en microchips, el diseño asistido por computador para el diseño de órtesis y prótesis (O&P), se convirtió en una posibilidad real en la práctica de este ejercicio (Michael, 1989; Lemaire et al., 1999; Rogers et al., 2007). La fabricación tradicional de O&P es realizada a partir de un molde de yeso del muñón o extremidad a corregir del paciente. Este molde luego es modificado mediante la adición de material en zonas delicadas o la remoción de yeso en zonas de ajuste, para posteriormente ser utilizado para modelar el material plástico que conformará el socket de la O&P definitiva (Cheng et al., 1998). Este molde de yeso corresponde al molde inverso del socket de la prótesis, el que constituye la parte más importante en la fabricación de una prótesis, ya que es la interfase entre el usuario y su nueva extremidad (Isozaki et al., 2006; Lee et al., 2004). La técnica tradicional permite obtener un socket exclusivo y personalizado para cada paciente, sin embargo, el resultado dependerá principalmente de la experiencia del ortesista o protesista que tome el molde y luego lo modifique (Isozaki et al., 2006; Walsh et al., 1989). Es sabido, que el uso de CAD/CAM (Computer Aided Design / Computer Aided Manufacturing) ha resultado en una fuerte disminución de los costos de fabricación y tiempos de desarrollo en la fabricación de automóviles y otros productos de consumo desde la integración de estas tecnologías en sus procesos productivos. El diseño de O&P también se beneficia de esta tecnología reduciendo los costos y tiempos de fabricación, así como en una mejora en la prestación del servicio a los pacientes (Cheng et al., 1998; Lemaire et al., 1999). Esta tecnología digital permite además mantener almacenada la información, tanto de la superficie digitalizada, como del proceso completo de modificación (Oberg et al., 1989). A pesar de estas ventajas, esta tecnología no se ha masificado en países en desarrollo, donde este procedimiento continúa haciéndose de forma tradicional.. 1.
(13) La fabricación tradicional de socket de prótesis se hace mediante la obtención de un molde negativo con yeso, el que luego es nuevamente rellenado de este mismo material y se obtiene la réplica positiva del muñón el que es modificado manualmente para obtener el molde inverso del socket de prótesis. La Figura 1-1 muestra la etapa de modificación manual del molde de yeso del muñón. Dada la exclusividad del socket fabricado de forma tradicional es que la integración del CAD en sus primeros años fue rechazada por sus fabricantes (Michael, 1989; Steele, 1994), sin embargo hoy en día los software CAD son mayormente aceptados y utilizados dadas las ventajas que el diseño asistido por computador tiene. Actualmente existe una variedad de software que permiten el diseño de órtesis y prótesis (McGarry y McHugh, 2007). A pesar de la importancia que tiene el socket en la prótesis final, los software comerciales, aceptados ampliamente, trabajan en base a un molde de socket prediseñado, el que es modificado por el protesísta para acercarse a la imagen digital del muñón o a medidas estándar del mismo (Oberg et al., 1989; Isozaki et al., 2006; Arbogast et al., 2007). Con un enfoque completamente distinto a los utilizados actualmente, el objetivo de este trabajo será generar modificaciones directamente sobre la imagen digitalizada del muñón, sin usar moldes previamente definidos. Este trabajo se acotará a las modificaciones correspondientes a “cargas” y “descargas” sobre el muñón. Las primeras se ven reflejadas en el socket en los puntos donde debe ajustarse éste al muñón, mientras que las “descargas” liberan al muñón del contacto con el socket, principalmente en zonas óseas y dérmicas más delicadas.. 2.
(14) Fuente: Taller de Ortesis y Prótesis , Teletón. Figura 1-1: Fabricación tradicional de molde inverso de socket. 3.
(15) 2. MARCO CONTEXTUAL 2.1.. Adquisición de Datos Para obtener la imagen digital del paciente, se empleó el scanner modelo Fastscan. Cobra de la empresa Polhemus. Se escogió este modelo debido a la facilidad y rapidez del proceso de escaneado; a una alta resolución en la imagen digital; y por ofrecer la posibilidad de marcar y digitalizar puntos y líneas sobre la superficie escaneada.. Fuente: www.fastscan3d.com. Figura 2-1: Scanner Fastscan. Izquierda: Scanner modelo Fastscan Cobra. Derecha: superficie computacional 3D y triangulación de Delaunay. Más específicamente, este scanner consta de una “pistola” que emite un haz láser en forma de línea. Con esta “pistola” se va barriendo la superficie, y el resultado al final es un conjunto de barridos que forman la superficie. El software que viene incluido con el scanner visualiza la superficie como un sólido, pero efectivamente, la superficie es un conjunto de puntos con una triangulación Delaunay. Esta triangulación consiste en una red de triángulos, cuyos vértices son los puntos mencionados anteriormente y que cumplen con la condición de Delaunay. Esta dice que, la esfera circunscrita de cada triángulo de la red no debe contener ningún vértice de otro triángulo (Elman y Zachman, 2006).. 4.
(16) Estos dos datos, el conjunto de puntos y los vértices de cada triángulo, son los que pueden utilizarse fuera del software Fastscan y son exportados como dos matrices. Points (P), matriz de 3×NP, donde NP corresponde al número total de puntos y cada columna contiene las coordenadas cartesianas de cada uno. Y Facets (F), matriz de 3×NF, con NF el número total de triángulos de la red. Cada columna corresponde a un triangulo y las filas corresponden a los puntos que los forman. La matriz Facets es un puntero hacia la matriz Points, es decir cada celda(i,j) perteneciente a esta matriz indica una columna de Points. Por ejemplo, en la Figura 2-2, los puntos pi , p j y p k conforman el triángulo m de la matriz Facets. Matemáticamente: F (1, m ) = i F (2, m ) = j. F (3, m ) = k. ⎡ p1x L pix L p xj L p kx L p Nx P ⎤ ⎢ ⎥ P = ⎢ p1y L p iy L p yj L p ky L p Ny P ⎥ ⎢ p1z L p iz L p zj L p kz L p Nz ⎥ P ⎦ ⎣. ⎡ f11 L f1m L f1 N F ⎤ ⎢ ⎥ F = ⎢ f 21 L f 2 m L f 2 N F ⎥ ⎢ f 31 L f 3m L f 3 N ⎥ F ⎦ ⎣ triángulo m. Figura 2-2: Diagrama matrices Points (P) y Facets(F). Es importante mencionar, que en el proceso de fabricación del molde para el socket de una prótesis, los protesistas marcan sobre el muñón del paciente ciertos puntos de. 5.
(17) referencia con un lápiz especial que traspasa aquellas marcas a la copia positiva de yeso del muñón sobre la cual se trabaja después. El objetivo de estas marcas, es darle al protesista una referencia precisa donde debe hacer las modificaciones, las que normalmente corresponden a liberaciones de carga en sectores óseos o presiones sobre sectores mas blandos. Estos puntos son generalmente detectados manualmente por el protesista y con la ayuda del paciente antes de comenzar con la toma de molde. Es por esta razón que se escogió un escáner láser que de forma sencilla también permitiera realizar estas marcas y quedarán impregnadas en la versión digital del muñón. La herramienta Stylus del scanner Fastscan permite marcar puntos y líneas, los que son almacenados en un archivo de texto. En este desarrollo utilizaremos ambas matrices Points y Facets y marcas de puntos obtenidos mediante la herramienta Stylus. La Figura 2-3 muestra la gráfica de la matriz Points, para el muñón de un paciente y algunos puntos Stylus marcados durante la digitalización. Estos datos serán los utilizados durante el desarrollo de este trabajo.. Puntos Stylus. Figura 2-3: Representación gráfica de la nube de puntos y de los puntos Stylus en Matlab. 6.
(18) 2.2.. Marco teórico y arte previo El marco teórico de este trabajo puede dividirse en dos temas distintos. Primero se. tiene la aplicación que se desea lograr, el diseño de socket de prótesis asistido por computadora y en segundo lugar se tiene el desarrollo computacional de esta aplicación, específicamente en lo que se refiere a modificación e intersección de superficies definidas por nubes de puntos. En cuanto al primer tema, ya se mencionaba en la introducción un poco de la historia de la inserción del CAD en el diseño de socket de prótesis y órtesis. Hoy en día existen tres principales empresas en EEUU que desarrollan este tipo de tecnología en la fabricación de prótesis y órtesis, Seattle Limb System, Ohio Willow Wood Company y Biosculptor. Si bien las tres difieren en el proceso de digitalización de la imagen y el material de fabricación final, coinciden en la forma básica de modificación del molde. Las tres empresas utilizan librerías de socket estándar los que son modificados en sus longitudes, diámetros y aplicación de cargas y descargas en base al molde digitalizado (Labayru, 2007). Con respecto al segundo punto, la definición de superficies a través de nubes de puntos, ha tomado gran importancia dado el crecimiento de las tecnologías en escaneado en 3D (Klein y Zachmann, 2005, Carr et al., 2001; Goldstein y Fleisig, 2006). Una de las principales aplicaciones de esta tecnología es la Ingeniería Inversa. Esta última requiere la información geométrica proveniente de un objeto físico para luego ser procesada a un formato computacional para utilizarse en los procesos que prosiguen (Adamson y Alexa, 2003, Chui et al., 2007). Existen dos principales técnicas para la procesar la información obtenida de un escaneado 3D: (a) reconstrucción de superficies mediante funciones implícitas, como funciones paramétricas o (b) modelación de superficies mediante mallas poliédricas (Sun et al., 2001). La reconstrucción de superficies a través de funciones implícitas está acotada para casos simples y especiales (Hoppe et al., 1992). Por otra parte las mallas presentan une mejor definición de superficie ya que conecta todos los puntos, siempre y cuando la densidad de la nube de puntos sea la suficiente para no dejar hoyos en 7.
(19) la malla (Yu, 1999). Las superficies o mallas de Delaunay corresponde a este último tipo de representación de superficies, por lo tanto la información con la que se cuenta son las coordenadas de los puntos y la conectividad que hay entre ellos.}. 2.3.. Análisis de la solución propuesta Se tiene una imagen de la superficie en R3 del muñón y hay que deformarla. mediante herramientas computacionales, de modo de replicar el trabajo en yeso que hace el protesísta. Mediante observación se llegó a la conclusión que muchos de los cambios (cargas y descargas) que se hacen sobre el molde de yeso podrían replicarse intersectando superficies (de tamaños y formas a definir por el usuario) sobre la superficie original. Las figuras a continuación muestran el problema equivalente en 2D, con una curva definida por un conjunto de puntos (muñón digitalizado) y una curva secundaria (definida geométricamente) que da la forma de la deformación final.. Figura 2-4: Esquema 2D solución propuesta. Izquierda: superficie original. Derecha: superficie deformada. La deformación se realiza en 3 etapas, primero hay que posicionar la superficie secundaria sobre la original, luego hay que desplazar los puntos que se encuentran dentro de la superficie hacia ésta y, por último, suavizar los bordes de la región intersectada. De esta forma se logran deformaciones suaves, tanto las que son hacia adentro como las que son hacia fuera de la superficie original.. 8.
(20) Figura 2-5: Etapas de deformación. 9.
(21) 3.. DESARROLLO DEL ALGORITMO La deformación de la superficie consta de tres etapas, el posicionamiento de la. superficie secundaria, el desplazamiento de los puntos internos y la suavización de las regiones de intersección. Antes de continuar es importante mencionar algunas definiciones desarrolladas para el algoritmo a continuación. De aquí en adelante la superficie digitalizada o muñón corresponderá a la superficie P y la superficie secundaria o geométrica corresponderá a la superficie Q. Puntos de referencia El punto de referencia de la superficie P, p P , corresponde al punto, definido por el protesista (mediante la herramienta Stylus), donde se desea hacer la modificación. Como éste no pertenece a la superficie P y por lo tanto, no esta relacionado con el resto de los puntos pertenecientes a esta superficie mediante una triangulación, debemos encontrar un punto perteneciente a P lo más cercano posible a p P . Este punto será aquel cuya distancia euclidiana con el punto p P es la menor. A este punto lo llamaremos rP . Usando como ejemplo el muñón de la Figura 2-3, se escoge el punto cercano a la rótula como punto de referencia p P , ver Figura 3-1. Si esta figura se aumenta lo suficiente, es posible observar el punto pP , punto Stylus de referencia y el punto más cercano rP (ver Figura 3-2).. El punto de referencia de la superficie Q es un punto definido dentro del software que sirve de referencia al momento de posicionar la superficie secundaria sobre la superficie del muñón o superficie P.. 10.
(22) Punto de referencia Stylus, pP. Figura 3-1: Punto Stylus seleccionado como punto de referencia del muñón. pP. rP. Figura 3-2: Punto de referencia pP, de la herramienta Stylus y punto de referencia rP perteneciente a la matriz P. Vector triangulación un punto p Se define como vector de triangulación de p ( ∆p ), aquel vector que contiene los puntos que forman los triángulos que comparten el mismo vértice p, menos éste último. El tamaño de ∆p ( 1 × N ∆p ), dependerá exclusivamente de la matriz FP y de cómo el software Fastscan realizó la triangulación.. 11.
(23) p2. p3. p1. p. p N ∆p Figura 3-3: Puntos pertenecientes al vector triangulación de p, ∆p,. A modo de recordatorio, la matriz FP es un puntero hacia las columnas de la matriz. P, y por lo tanto, ∆p también lo será, ver Figura 3-4.. ⎡ p1x L pix L p xj L p kx L plx L p Nx P ⎤ ⎢ ⎥ P = ⎢ p1y L piy L p yj L p ky L ply L p Ny P ⎥ ⎢ p1z L piz L p zj L p kz L plz L p Nz ⎥ P ⎦ ⎣. ⎡ p1 ⎤ ⎢ p ⎥ ⎢ 2 ⎥ ∆p = ⎢ p 3 ⎥ ⎢ ⎥ ⎢ M ⎥ ⎢ pN ⎥ ⎣ ∆p ⎦. Figura 3-4: Matriz P y vector triangulación ∆p. 3.1.. Etapa 1: Posicionamiento superficie secundaria La deformación de la superficie P dependerá exclusivamente de la posición que. tome la superficie Q, ya que el objetivo es que la región de P contenida dentro de la curva de intersección, formada por la superficie P y Q, tome la forma de la superficie Q y así generar la deformación. 12.
(24) Superficie secundaria Superficie digitalizada. Figura 3-5: Esquema etapa 1: Posicionamiento de la superficie secundaria. Este posicionamiento no es tan trivial como podría suponerse ya que implica ciertos cálculos que dependen de la forma de la superficie P y del punto de referencia p P donde se trabaja, además requiere de la participación del usuario. Primero, debe definirse, cuál será la superficie Q que se utilizará. Nuevamente, de la observación, se definió un conjunto de superficies definidas matemáticamente (es decir, su función implícita f Q ( x, y, z ) = 0 es conocida). Estas son, una esfera, un elipsoide, un paraboloide, un paraboloide elíptico y un toroide. Las dimensiones de todas estas deben ser definidas por el usuario y cada una cuenta con un punto de referencia para usar. Inicialmente, estas superficies se encuentran centradas en el origen, y sus ejes principales coinciden con los ejes coordenados X, Y y Z. Para facilitar el trabajo del usuario, se impusieron ciertas condiciones que debe cumplir la superficie Q, para quedar posicionada sobre la superficie P.. •. El punto rQ (punto de referencia de la superficie Q), debe coincidir con el punto rP (punto de referencia de la superficie P).. •. La normal de la superficie Q, nQ , en el punto rQ , debe ser igual a la normal de la superficie P, n P , en el punto rP .. 13.
(25) 3.1.1.. Cálculo de normales Conociendo la función implícita de cualquier superficie S, es posible encontrar la. normal mediante el cálculo del gradiente de la función, en un punto s ∈ ℜ 3 cualquiera.. ⎛ ∂f (s ) ∂f (s ) ∂f (s ) ⎞ r n S (s ) = ∇ f S (s ) = ⎜ S , S , S ⎟ ⎜ ∂p ∂p y ∂p z ⎟⎠ x ⎝ La normal de la superficie Q se puede calcular usando este método, ya que la función de ésta, f Q , es conocida.. Para una superficie S definida por polígonos, cuya función implícita es desconocida, es posible calcular la normal en un punto s cualquiera de forma aproximada usando el algoritmo de Gourand (Chui et al., 2007). En cada vértice, es posible obtener la normal promediando las normales de los polígonos que comparten dicho vértice. Por lo tanto, para encontrar la normal en el punto s se tiene que:. ns. ∑ =. m j =1. nj. m. donde m es el número de polígonos que comparten el vértice s, y n j corresponde a la normal del polígono j que comparte el vértice s (ver Figura 3-6).. 14.
(26) n2 n1 n3 ns. s n5. n4 Figura 3-6: Algoritmo de Gourand. Como la superficie P está definida por una nube de puntos dada por la matriz P, y una triangulación dada por la matriz FP , se calculará la normal con este algoritmo. A partir de la matriz FP es posible encontrar los puntos que pertenecen al vector de triangulación de rP , ∆rP = {rP1 , rP 2 , K, rP 6 }. rP1 rP 6. pP. rP 5. rP 2 rP. rP 3 rP 4. Figura 3-7: Punto de referencia rP y los puntos rPi pertenecientes a su triangulación. 15.
(27) Luego, para encontrar la normal de cada polígono de se tiene que: . Para el triángulo 1, formado por los puntos rP , rP1 y rP 2 se calcula n1 = (rP1 − rP )× (rP 2 − rP ). . Para el triángulo 2, formado por los puntos rP , rP 2 y rP 3 se calcula n2 = (rP 2 − rP ) × (rP 3 − rP ). . El cálculo se repite para el resto de los triángulos.. . ∑ =. Por último se tiene n P. 6. i =1. ni. 6. Resumiendo, 9 La normal nQ en el punto de referencia rQ de la superficie secundaria o superficie Q,. se calcula a partir del gradiente de la función que representa a esta superficie, la cual es conocida. 9 La normal n P en el punto de referencia rP de la superficie escaneada o superficie P, se. calcula mediante el algoritmo de Gourand.. 3.1.2.. Posicionamiento Inicial. Inicialmente, la superficie Q se posicionará automáticamente, cumpliendo con las dos condiciones iniciales (punto de referencia, rQ , y normal, nQ , de la superficie Q coincidan con rP y n P respectivamente). Se comenzará rotando la superficie Q de modo que la normal nQ sea igual a la normal n P , para esto debe encontrarse una matriz M 1 tal que:. n P = M 1 ⋅ nQ. 16.
(28) La matriz M1 (ver Anexo B) que cumple con esta condición es: ⎡cos θ P M 1 = ⎢⎢ sin θ P ⎢⎣ 0. − sin θ P. 0⎤ ⎡cos γ 0⎥⎥ ⋅ ⎢⎢ 0 1⎥⎦ ⎢⎣ sin γ. cos θ P 0. 0 − sin γ ⎤ ⎡ cos θ Q 1 0 ⎥⎥ ⋅ ⎢⎢− sin θ Q 0 cos γ ⎥⎦ ⎢⎣ 0. sin θ Q cos θ Q 0. 0⎤ 0⎥⎥ 1⎥⎦. donde θ P y θ Q son los ángulos de azimuth (ángulo que forma el eje X) con la proyección del vector sobre el plano XY) de n P y nQ respectivamente y γ = γ P − γ Q , con γ P y γ Q , los ángulos de elevación de las normales. Para un vector r cualquiera los ángulos de azimuth y elevación se calculan respectivamente como. tan θ =. ry rx. tan γ =. rz r + ry2 2 x. Z. r r. γ. Y. θ X. Figura 3-8: Ángulos de azimuth (θ) y elevación (γ) para un vector cualquiera r.. 17.
(29) Por lo tanto, para rotar la superficie Q de modo que su normal nQ coincida con la normal n P de la superficie P se calcula para cada punto de Q y para rQ .. 1. qi = M 1 ⋅ qi. 1. rQ = M 1 ⋅ rQ. con i = 1, 2, ..., N Q. Luego se traslada la superficie Q de modo que su punto de referencia rQ coincida con rP el punto de referencia de la superficie P. Debe encontrarse un vector de traslado r1 tal que: rP = 1rQ + r1. r1 = 1rQ − rP = M 1 ⋅ rQ − rP. Entonces, para cada punto de la superficie Q y su punto de referencia, se tiene que 2. qi = 1qi + r1 = M 1 ⋅ qi + r1. 2. rQ = 1rQ + r1 = M 1 ⋅ rQ + r1. Figura 3-9: Izquierda: Posición inicial superficie Q. Derecha: Posición superficie Q luego de la primera rotación y traslación. 18.
(30) En la Figura 3-10 se muestra la superficie P (muñón) y la superficie Q (en este caso, un paraboloide) ya posicionada, como se observa el sentido de esta última dependerá del sentido de la normal de la superficie P, calculada en el punto 3.1.1. Aquí es el usuario quien deberá escoger cual de las dos opciones le será de utilidad, ya sea para hacer una presión (izquierda) o una descarga (derecha).. Figura 3-10: Izquierda: Posición de presión o carga superficie Q. Derecha: Posición de descarga superficie Q. 3.1.3.. Rotación Tangencial. Aquellas superficies, que no son simétricas con respecto a su normal, como es el caso de una elipsoide, un paraboloide elíptico y un toroide este posicionamiento no siempre es el correcto. En la Figura 3-11, se observa el mismo muñón que en los ejemplos usados anteriormente, pero esta vez la superficie secundaria o superficie Q es un toroide posicionado en el mismo punto de referencia rP . A la derecha el punto de observación es en dirección de la normal, en esta figura se aprecia que no cualquier orientación de la superficie Q entregará el mismo resultado.. 19.
(31) ×. Figura 3-11: Posicionamiento inicial de un toroide sobre el punto de referencia rP. Para corregir este problema, nuevamente se requerirá la interacción con el usuario para determinar cuanto debe girar la superficie Q (toroide) en torno a la normal para quedar en una posición válida, es decir, que genere una deformación útil. Esta vez debe encontrarse una matriz de rotación M2(α), donde α corresponde al ángulo que el usuario ingresa y además la normal de la superficie Q debe continuar siendo igual a la normal de la superficie P, es decir, la rotación es en el plano tangencial a la normal. 3. qi = M 2(a )⋅ 2 qi. 3. rQ = M 2(a ) ⋅ 2 rQ. La matriz M 2(α ) (ver Anexo B) que permite realizar la rotación tangencial es. M 2(α ) = M 2C ⋅ M 2 B (α ) ⋅ M 2 A. siendo. 20.
(32) ⎡ sin γ P 0 − cos γ P ⎤ ⎡ cos θ P sin θ P 0⎤ M 2 A = ⎢⎢ 0 1 0 ⎥⎥ ⎢⎢− sin θ P cos θ P 0⎥⎥ ⎢⎣cos γ P 0 sin γ P ⎥⎦ ⎢⎣ 0 0 1⎥⎦ ⎡cos α − sin α 0⎤ M 2 B(α ) = ⎢⎢ sin α cos α 0⎥⎥ ⎢⎣ 0 0 1⎥⎦. ⎡cos θ P − sin θ P 0⎤ ⎡ sin γ P 0 cos γ P ⎤ M 2C = ⎢⎢ sin θ P cos θ P 0⎥⎥ ⎢⎢ 0 1 0 ⎥⎥ ⎢⎣ 0 0 1⎥⎦ ⎢⎣' cos γ P 0 sin γ P ⎥⎦ Debido a las distintas rotaciones, puede ocurrir, que los puntos de referencia no se mantengan coincidentes, por lo que, en caso que esto ocurra, debe trasladarse nuevamente la superficie Q. r 2 = 3rQ − rP 4. qi = 3qi + r 2 = M 2(α ) ⋅ 2 qi + r 2. 4. rQ = 3rQ + r 2 = M 2(α ) ⋅ 2 rQ + r 2. La Figura 3-12 muestra el toroide rotado en torno a su normal con un ángulo. α = 60º con respecto a la posición inicial. El ángulo dependerá exclusivamente del usuario y determinará la forma de la deformación final.. 21.
(33) Figura 3-12: Posicionamiento superficie Q, luego de rotación tangencial y traslado al punto de referencia pP. Izquierda: Punto de observación lateral. Derecha: Punto de observación en dirección normal. 3.1.4.. Desplazamiento según la normal. Por último, cuando la superficie Q está posicionada como el usuario desea, se desplaza según la dirección y sentido de la normal. La magnitud del desplazamiento d n nuevamente debe ser ingresado por el usuario. r3 = d n ⋅ nP 5. qi = 4 qi + r 3. 5. rQ = 4 rQ + r 3. Las figuras 3-13 y 3-14 muestran la posición antes y después del desplazamiento en dirección normal de la superficie Q, para el paraboloide y toroide de los ejemplos anteriores.. 22.
(34) Figura 3-13: Desplazamiento en dirección normal de un paraboloide sobre el muñón (dn=7mm). Figura 3-14: Desplazamiento en dirección normal de un toroide sobre el muñón (dn =5mm). Resumiendo todas las rotaciones y traslaciones parciales en una sola ecuación se tiene RT. qi = M 2 ⋅ (M 1 ⋅ qi + r1) + r 2 + r 3. RT. rQ = M 2 ⋅ (M 1 ⋅ p Q + r1) + r 2 + r 3 .. donde. RT. (1). qi corresponde al punto i de la superficie Q posicionada y. referencia de la superficie Q posicionada.. 23. RT. rQ al punto de.
(35) Por último, la función final que representa la superficie Q, luego de las sucesivas traslaciones y rotaciones, será f QRT .. 3.2.. Etapa 2: Desplazamiento de puntos internos. Esta etapa consiste en desplazar hacia la superficie Q todos aquellos puntos de la superficie P (muñón) que se encuentren dentro de la curva de intersección generada entre las superficie Q y P. El objetivo de desplazar estos puntos, y no simplemente reemplazarlos por los de la superficie Q, es mantener la relación de vecindad determinada por la triangulación de Delaunay. Esto permitirá realizar futuras deformaciones en la misma zona. Esta etapa es un poco más compleja que la anterior, ya que hay que trabajar con la superficie P, o sea, con un conjunto de puntos, cuyas coordenadas se encuentran en la matriz P y su triangulación determinada por la matriz FP .. Figura 3-15: Esquema etapa 2 de deformación: Desplazamiento punto internos. Si se definen como puntos internos todos aquellos puntos que se encuentran dentro de la curva de intersección generada entre las superficie P y Q, entonces se impone como requerimiento obligatorio para nuestros objetivos, que ambas superficies al intersectarse (etapa 1) generen una curva cerrada. La superficie Q es una superficie implícita mientras que la superficie P no lo es (es un conjunto de puntos y una triangulación), por lo que no es posible encontrar la expresión matemática para la curva de intersección, por esto, buscaremos un conjunto de puntos internos Cin, que aproximen esta curva. 24.
(36) 3.2.1.. Curva de intersección. Para encontrar la curva de intersección (CI), partiremos por encontrar un primer punto pin , perteneciente a la superficie P, que se encuentre al interior de la superficie Q, y “lo suficientemente cerca” de esta superficie como para pertenecer a una curva de intersección aproximada. “Lo suficientemente cerca” se interpretará como aquel punto que se encuentra al interior de la superficie Q (por tanto dentro de la CI), y al menos un punto perteneciente a la triangulación de pin se encuentra afuera de CI, independiente de la resolución que con que se haya escaneado la superficie P. Al punto que se encuentra fuera de CI, lo llamaremos pout .. p out p in. CI. Figura 3-16: pin está “lo suficientemente cerca de CI” si al menos un punto perteneciente a su triangulación se encuentra fuera de la superficie Q. Para comenzar tomaremos el punto rP , el cual, debido a como se definió el posicionamiento de la superficie Q, sabemos que se encuentra dentro de ésta y podemos corroborar esto si se cumple. f QRT (rP ) < 0. 25.
(37) donde f QRT ( x, y, z ) = 0 corresponde a la función implícita de la superficie Q luego de terminada la etapa 1, es decir, luego de posicionada la superficie Q sobre la superficie P. Esta última condición no es tan sencilla de calcular ya que las funciones implícitas están definidas en la mayoría de la literatura en su forma más sencilla, centradas en el origen o en torno a un eje cartesiano y sus ejes principales coincidentes con estos ejes. En la etapa anterior, se realizaron sobre la superficie Q varias rotaciones y desplazamientos los que no son tan triviales de representar en una función implícita, principalmente en funciones complejas como la de un toroide. Cambiando un poco el método de resolución esta situación puede resolverse de manera muy sencilla. Una forma de solucionar esto podría ser, mantener la superficie Q en la posición inicial, es decir aquella donde sí tenemos definida su función fQ y rotar en torno a esta la superficie P, el resultado de esto sería realizar las operaciones inversas que se hacen en la ecuación (1). El problema que resulta de hacer esta operación, es el costo computacional que conlleva, ya que dependiendo de la resolución y la magnitud de NP (número total de puntos de la superficie P), la que puede ir desde los 28.000 puntos, en caso del muñón utilizado en este trabajo, para una resolución de 2 mm, hasta 150.000 puntos para menores resoluciones o superficies más grandes. Comparando con los 1.500 que podría tener la superficie Q el costo computacional es mucho mayor. Este número podría ser mucho menor ya que se utiliza sólo para visualizar esta superficie y posicionarla correctamente. Pero, en vez de rotar y trasladar toda la superficie P lo que haremos será rotar y trasladar sólo el punto p que queremos verificar, es decir, en vez de verificar f QRT (rP ) < 0. verificamos que se cumpla f Q ( p ′) < 0. 26.
(38) donde. (. ). p ′ = M 1−1 ⋅ M 2 −1 ⋅ ( p − r 2 − r 3) − r1. (2). Por lo tanto, cada vez que se necesite verificar si un punto se encuentra dentro o fuera de la superficie Q, se calculan las rotaciones y traslaciones inversas dadas en la ecuación (2). Retomando la idea de corroborar si el punto rP está dentro o fuera de la superficie Q, verificamos si se cumple. f Q (rP′ ) < 0 rP′ = M 1−1 ⋅ (M 2 −1 ⋅ (rP − r 2 − r 3) − r1) Nuevamente, según como se posicionó y desplazó la superficie Q, esta desigualdad debiera ser verdadera en todos lo casos. Entonces, se tiene un punto que pertenece a la superficie P y que se sabe se encuentra dentro de la superficie Q, por lo que a partir de ese punto comenzaremos a acercarnos a la curva de intersección a través de la malla triangulada. Se recorrerá la malla en una dirección, punto por punto verificando si este se encuentra dentro de Q, hasta que encontremos uno que se encuentre fuera. De la matriz FP , se obtiene el vector de triangulación de rP ( ∆rP ). De forma arbitraria se escoge un punto p1 cualquiera perteneciente a ∆rP , para comenzar a recorrer la malla y calculamos la dirección d 1 del recorrido como. d1 =. p1 − rP q1 − rP. 27.
(39) Si se cumple que f Q ( p1′ ) < 0 , entonces se busca el siguiente punto p 2 , ya que p1 se encontraría al interior de la superficie Q.. d1. p1 rP. Figura 3-17: Punto 1 trayectoria rP – pin. Primero se determina ∆p1 , luego para cada punto p1i ∈ ∆p1 se calcula su dirección con respecto al punto p1 y el ángulo que forma esta con d 1. p1i =. p1i − p1 p1i − p1. y. cos β 1i =. d1i ⋅ d1 d1i d1. entonces, aquel punto p1i que dé cómo resultado el menor ángulo θ1i será el siguiente r r r punto q 2 y d1i la siguiente dirección del recorrido d 2 . Luego de verificar que se cumpla. f Q (q 2′ ) < 0 se continúa con el punto siguiente.. 28.
(40) d 14 = d 2 p15. p14 = p 2. β 14. d1 p13. p1 p11. p12. Figura 3-18: Punto 2 trayectoria rP – pin. d 23 = d 3. p 23. p 22 = p3. d 2 β 23. p 24. p2. p 25. p 21. Figura 3-19: Punto 3 trayectoria rP – pin. El algoritmo a partir de j = 2 es el siguiente: 1. Verificar si se cumple f Q ( p ′j −1 ) < 0 , si no se cumple esta condición, saltarse los puntos 2-6. 2. Se determina ∆p j −1. 29.
(41) 3. d ( j −1)i =. p ( j −1)i − p ( j −1). p ( j −1)i − p ( j −1) r r d ( j −1)i ⋅ d ( j −1) cos β ( j −1)i = r r d ( j −1)i d ( j −1). 4.. p j = p ( j −1)a y d j = d ( j −1)a siendo a, el índice correspondiente al menor β ( j −1)i .. 5.. j = j +1. 6. Vuelve al punto 1.. pin = p j − 2 y p out = p j −1. 7.. Observando el comportamiento de la trayectoria para distintos casos, se aplicó una corrección al cálculo del ángulo β .. cos β ( j −1)i =. d ( j −1)i ⋅ d d ( j −1)i d. donde d corresponde al promedio de todos las direcciones anteriores, es decir, j −1. d=. ∑d k =1. k. j −1 Esta corrección permite que todas las direcciones anteriores sean tomadas en cuenta. al momento de escoger el punto siguiente, y por tanto la trayectoria sea más recta. En la Figura 3-20, se observa la diferencia entre una trayectoria sin la corrección mencionada y una trayectoria con corrección. Aplicando esta corrección no necesariamente el punto pin encontrado será el mismo, pero esto no afecta en el resultado final del trabajo.. 30.
(42) pin. pin. rP. rP. Figura 3-20: Corrección de trayectoria rP – pin. Continuando con el objetivo de encontrar un conjunto de puntos que aproximen la curva de intersección entre las superficie P y Q, comenzamos a recorrer ésta partiendo por el punto pin encontrado. Recordemos que pin corresponde a un punto en la cercanía de la curva de intersección, cuya triangulación contiene al menos un punto que está fuera de la superficie Q (ver Figura 3-16). Este conjunto de puntos se almacenará en el vector C in y cada punto i perteneciente a este vector lo llamaremos ci . Cabe mencionar que los puntos que pertenezcan a C in deben cumplir con la misma condición de cercanía a CI de pin , es decir, todo ci debe tener en su vector triangulación al menos un punto que se encuentre fuera de CI. Como se comenzará por pin , se tiene que c1 = pin Para encontrar el siguiente punto, buscamos en la triangulación de c1 , ∆c1 , aquellos puntos que se encuentren dentro de la superficie Q, es decir, aquellos puntos que cumplen con f Q (c1′i ) < 0 . Encontrados estos puntos, buscamos entonces aquel que este más cerca de la superficie Q. Para esto resolvemos f Q (c1′i ) y aquel punto que de el menor resultado corresponderá a c 2 . 31.
(43) c21. c25 c14 c13 c12. c15. c3 = c 24. c1. c2. c1 = c22 c23. c11. Figura 3-21: Izquierda: ejemplo punto c1 y los puntos c1j correspondientes a su triangulación. Derecha: punto c2 y puntos c2j.. En el ejemplo de la Figura 3-21, izquierda, se observa el punto c1 y los puntos. c1 j ∈ ∆c1 . c1 cumple con la condición de cercanía definida ya que tanto c14 y c15 se encuentran fuera de la CI. En este ejemplo c13 es aquel punto que se encuentra más cerca de CI, por lo tanto este punto corresponderá a c 2 . En esta misma figura a la derecha se observa entonces c 2 y los puntos c 2 j ∈ ∆c 2 .. Para encontrar el siguiente punto, c3 , procedemos de la misma forma: buscamos la triangulación de c 2 , ∆c 2 , y, de los puntos c2i que se encuentran dentro de la superficie Q buscamos aquel que este más cerca de ésta. Además, imponiendo como condición que c3 ≠ c1 , aseguramos un avance a través de la curva, y no retrocesos. De la Figura 3-21, derecha, se observa que c 22 , c 23 y c 24 están dentro de la superficie Q, pero c 22 = c1 , por lo tanto no se podría escoger este punto, aunque fuese el más cercano a la superficie de los tres, ya que no se estaría recorriendo la curva correctamente. Luego, c 24 es el punto más cercano a la CI y por lo tanto este corresponderá a c3 . El resto de los puntos se resuelven iterativamente, de la misma forma en que se resolvió c 2 , imponiendo como condición adicional que c k ≠ c j , con j = 1, K, k − 1 .. 32.
(44) Cuando el algoritmo se encuentra con que el siguiente punto es c k = c1 significa que se recorrió la curva completa, y por lo tanto hay que detener las iteraciones.. c4. c3. c2. c1. ck. Figura 3-22: Ejemplo de distribución de puntos Cin.. En la Figura 3-23, se observa el muñón, intersectado con un paraboloide, a la derecha pueden observarse los puntos pertenecientes a la superficie P que quedan dentro de la superficie Q. En la Figura 3-24, ya se ha encontrado el vector C in , cuyos puntos aproximan la curva de intersección entre ambas superficies.. Figura 3-23: Puntos internos superficie P.. 33.
(45) Figura 3-24: Curva de intersección Cin aproximada entre las superficies P y Q. c1 = qin c2 c3. rP ci. Figura 3-25: Trayectoria rP – pin y vector Cin. Un cálculo similar puede hacerse para encontrar una curva de intersección aproximada por fuera de la superficie Q, C out .. 34.
(46) 3.2.2.. Puntos internos Una forma sencilla de encontrar los puntos de la superficie P que se encuentran. dentro de la superficie Q, sería probar para cada punto p ∈ P si cumple con. f Q ( p ′) < 0. El problema de hacer este cálculo, es nuevamente el costo computacional que esto conlleva, ya que significa, realizar este cálculo alrededor de 15.000 veces, para el caso del muñón estudiado, o más si se trata de una superficie más grande o de mayor resolución Una forma de encontrar estos puntos, sin recorrer la superficie P completa es ir encontrando puntos por niveles. Al conjunto de puntos C in lo consideraremos como el nivel 1, ya que estos puntos son los que se encuentran más cerca de la CI. Continuando con el ejemplo del punto anterior, la Figura 3-26, muestra los puntos pertenecientes a C in , y el nivel 2 lo componen todos aquellos puntos que pertenezcan a la triangulación de un punto cualquiera c j ∈ C in y que cumplan con estar dentro de la superficie Q. Este segundo nivel lo llamaremos C in′ . Matemáticamente el algoritmo es el siguiente: 1. ∀ punto c j ∈ Cin encontrar su vector triangulación, ∆c j 2. ∀ punto c ji ∈ ∆c j , si cumple f Q (c ′ji ) < 0 y c ji ∉ C in , entonces c ji ∈ C in′. 35.
(47) C in , nivel 1 Cin′ , nivel 2. Figura 3-26: Puntos internos superficie P. Niveles 1 y 2. Adicionalmente, se generará un vector I donde se irán almacenando todos los puntos interiores que se encuentren. Encontrado C in′ , se tiene. ⎡C ⎤ I = ⎢ in ⎥ ⎣C in′ ⎦. Para encontrar los puntos que pertenecen al nivel 3, se toman todos los puntos. c ′j ∈ Cin′ , y para cada uno de ellos, se encuentra su vector triangulación ∆c ′j , los puntos c ′ji ∈ ∆c ′j y que además cumplan con c ′ji ∉ I se almacenan en un tercer vector C in′′ . Es importante almacenar este vector junto con C in y C in′ , ya que más adelante se trabajará con éstos para suavizar la región de intersección. Finalizado el recorrido por todos los puntos. c ′j se agrega C in′′ a I.. ⎡C in ⎤ I = ⎢⎢C in′ ⎥⎥ ⎢⎣C in′′ ⎥⎦. 36.
(48) Para un nivel C inx , se tiene entonces. ⎧ ⎡ C in ⎤ ⎫ ⎪ x x ⎪ x −1 x C = ⎨c | c ∈ ∆c y c ∉ I con I = ⎢⎢ M ⎥⎥ ⎬ ⎪ ⎢⎣C inx −1 ⎥⎦ ⎪⎭ ⎩ x in. cuando Cinx = { }, es decir, no encuentra ningún punto, se da por completa la búsqueda de puntos internos. La Figura 3-27 muestra a la izquierda los 3 primeros niveles, mientras que a la derecha muestra todos los niveles (siendo en este caso, 5 en total).. Figura 3-27: Puntos internos superficie P. Izquierda: niveles 1, 2 y 3. Derecha: niveles 1-5. 3.2.3.. Desplazamiento puntos internos Luego de encontrar los puntos pertenecientes a la superficie P que se encuentran. dentro de la superficie Q, deben desplazarse hacia esta superficie para generar la deformación. Para realizar este desplazamiento, se trazará para cada punto interno, pi ∈ I ,. 37.
(49) una recta con dirección normal n P , y se calculará el punto de intersección con la superficie Q. Matemáticamente,. {. pI = (r − pi ) × nP = 0 ∩ f QRT. }. donde p I es el punto de intersección entre la recta y la superficie Q, r es un punto cualquiera de la recta y f QRT es la función implícita de la superficie Q ya posicionada.. Nuevamente nos encontramos con el problema de que f QRT no es posible definirla para todas las superficies geométricas utilizadas en este desarrollo. Para solucionar esto se calcula. ( ⋅ (M 2 ⋅ (n. ) − r 2 − r 3) − r1) =0 ∩ f }. pi′ = M 1−1 ⋅ M 2 −1 ⋅ ( pi − r 2 − r 3) − r1 n ′P = M 1−1. −1. p ′I = {(r ′ − pi′ ) × n′P. P. Q. donde f Q es la función implícita de la superficie Q definida en el sistema absoluto.. Para obtener las coordenadas de p I , volvemos a realizar todas las rotaciones p I = M 2 ⋅ (M 1 ⋅ p ′I + r1) + r 2 + r 3. Como algunas superficies son cerradas, de este cálculo pueden resultar dos soluciones, p I 1 y p I 2 . Aquella que se encuentre en el sentido de la normal con respecto al punto pi , corresponderá a las coordenadas de desplazamiento.. 38.
(50) Luego, pi es reemplazado por p I en la matriz Points o P. De esta forma, la relación de vecindad definida por la triangulación de Delaunay y la matriz Facets se mantiene.. ⎡ p1x L pix L p Nx P ⎤ ⎥ ⎢ P = ⎢ p1y L piy L p Ny P ⎥ ⎢ p1z L piz L p Nz ⎥ P ⎦ ⎣. fila i ⎡ p1x L p Ix L p Nx P ⎤ ⎥ ⎢ P = ⎢ p1y L p Iy L p Ny P ⎥ ⎢ p1z L p Iz L p Nz ⎥ P ⎦ ⎣. Figura 3-28: Esquema matriz P, reemplazo punto pi por punto pI.. 3.3.. Etapa 3: Suavización de bordes En esta etapa se suavizan los bordes resultantes de la deformación realizada en la. etapa anterior. El objetivo es eliminar los posibles bordes pronunciados que den como resultado aristas filosas en el socket final.. Figura 3-29: Esquema etapa 3 de deformación: Suavización de la región de borde. 39.
(51) Primero, deben determinarse cuales son los puntos que conforman o borde o región de borde y el alcance que tendrá ésta. Anteriormente, se encontraron los vectores C in , C in′ y C in′′ que contienen los tres primeros niveles de puntos internos. De la misma forma se ′ y C out ′′ , mientras más niveles sean considerados, mayor será el encuentran C out , C out alcance de la suavización. De aquí en adelante, para una mayor comprensión de los algoritmos, se nombrarán a estos seis vectores como C k con k = 1K 6 , siendo C 1 el vector correspondiente al nivel mas interno, o sea, C in′′ y C 6 el vector del nivel más ′′ (ver Figura 3-30). Y la región de borde (RB) corresponderá a la unión de externo, C out todos estos vectores.. {. RB = C1 ∪ C 2 ∪ C 3 ∪ C 4 ∪ C 5 ∪ C 6. }. La Figura 3-30 a continuación, corresponde a la intersección entre un paraboloide y el muñón usado en este trabajo, en este caso el paraboloide esta generando una descarga ya que este se proyecta hacia fuera de la superficie y no hacia adentro como los ejemplos anteriores. En la figura de la derecha se muestran los puntos de los vectores C k , al igual que los triángulos que los unen. Recordemos que la curva de intersección se encuentra entre los vectores C 3 , que corresponde a C in y C 4 , correspondiente a C out . Teniendo definida ya la región de borde y su alcance, habrá que determinar como se hará la suavización. Las superficies de Bezier ofrecen una buena solución para este tipo de problemas, ya que son superficies definidas y fácilmente controlables.. 40.
(52) 4 5 C6 C C. C 3C 2 1 C. Figura 3-30: Región de borde (RB) definida por los vectores Ck. 3.3.1.. Superficies de Bezier Las superficies de Bezier, son el resultado de la aproximación matemática de un. conjunto de puntos distribuidos en una malla de n × m puntos. Esta malla es denominada el polinomio característico de la superficie, mientras que los puntos que la forman corresponden a los puntos de control. La ventaja de este tipo de aproximación es que la superficie resultante es una superficie controlada, predecible y suave en su forma. La ecuación general para una superficie de Bezier es m n r r r (u , w) = ∑∑ pij Bi ,m (u )B j ,n (w) i =0 j =0. donde. Bi ,m (u ) = C (m, i )u i (1 − u ). n −i. y C (m, i ) corresponde al coeficiente binomial 41.
(53) C (m, i ) =. m! i !(m − i )!. Figura 3-31: Superficie de Bezier. Para un polígono de 4×4 puntos, la ecuación paramétrica correspondiente es. [. r 3 r (u , w) = (1 − u ). 3u (1 − u ). 2. 3u 2 (1 − u ). ⎡ (1 − w)3 ⎤ ⎢ 2⎥ 3w(1 − w) ⎥ 3 ⎢ u P ⎢3w 2 (1 − w)⎥ ⎥ ⎢ w3 ⎦⎥ ⎣⎢. ]. donde r ⎡ p11 ⎢ pr P = ⎢ r 21 ⎢ p31 ⎢r ⎣ p 41. r p12 r p 22 r p32 r p 42. r p13 r p 23 r p33 r p 43. r p14 ⎤ r p 24 ⎥⎥ r p34 ⎥ r ⎥ p 44 ⎦. r y el vector pij corresponde a las coordenadas de los puntos de control del polinomio característico.. 42.
(54) 3.3.2.. Generación de mallas. Como nos interesa suavizar la zona de intersección debemos generar mallas en esta zona, la cual está determinada por los vectores C k , los que recorren la superficie circularmente y van de adentro hacia fuera (ver Figura 3-30). En este caso se generarán mallas de 4×4 que barrerán toda esta superficie.. Figura 3-32: Mallas de 4x4 sobre la Región de Borde (RB). La Figura 3-32 izquierda muestra una configuración posible para la primera malla usando los puntos de los vectores C 1 , C 3 , C 4 y C 6 . Como la superficie final debe ser continua, las mallas de Bezier también deben serlo. Por esto, la segunda malla debemos generarla a partir de la última fila de la primera malla. Lo mismo se hace para el resto de las mallas hasta cubrir toda la región de intersección. La formación de la mallas debe ser automática. Por lo que es necesario generar un algoritmo que resuelva este problema, generando mallas relativamente uniformes que no se entrecrucen entre sí y que recorran toda la superficie de intersección. 43.
(55) La Figura 3-33 corresponde al mismo ejemplo de las figuras 3-30 y 3-32, en ésta se indican los detalles A, B y C los que utilizaremos para ejemplificar el desarrollo del algoritmo de generación de mallas.. A. B. C. Figura 3-33: Región de Intersección, Detalles A, B y C. Primero, comenzaremos ordenando sucesivamente los puntos del primer vector C 1 . Se comenzará a partir de un punto arbitrario cualquiera y el segundo corresponderá a cualquiera de sus vecinos. Este segundo punto, debe cumplir con 2 condiciones, primero, que pertenezca al vector C 1 y segundo, que pertenezca a la triangulación del primer punto. Si existe más de un punto que cumpla con estas condiciones, se escoge cualquiera de ellos. A medida que los puntos de C 1 se vayan ordenando, se irán guardando en un vector auxiliar B 1 , si el primer punto corresponde a b11 entonces es segundo corresponderá a b21 y así sucesivamente. Continuando con el ejemplo anterior, la Figura 3-34, detalle A, muestra los tres primeros puntos, b11 , b21 y b31 , en este caso b11 tiene 1 solo vecino que pertenece a. C 1 . Para encontrar el tercer punto, se imponen las siguiente condiciones: b31 debe ser vecino del segundo, es decir, debe pertenecer a la triangulación de b21 ( ∆b21 ) y a la vez debe ser distinto a b11 .. 44.
(56) Bajo estas mismas condiciones se continúan encontrados los puntos siguientes. Matemáticamente, para n ≥ 2 se tiene que, cada punto bn1+1 debe cumplir con:. . bn1+1 ∈ ∆bn1. . bn1+1 ≠ bm1 con m = 1, L, n Cuando el punto que encuentra este algoritmo es igual al punto inicial b11 , entonces. se detiene la búsqueda, ya que la curva se cerró.. Detalle A. b31 1 2. b. Dirección de avance. b11. Figura 3-34: RB, detalle A. Ordenamiento primeros 3 puntos del vector C1.. Para ordenar el vector C 2 el algoritmo es similar al anterior, pero la elección del primer punto y la dirección de avance ya no es arbitraria, si no que depende de B 1 . El primer punto de la curva ordenada B 2 debe ser vecino del primer punto de B 1 . Por lo tanto, b12 debe pertenecer al vector C 2 y a la triangulación de b11 . Estas dos condiciones pueden ser cumplidas por varios puntos, normalmente dos o tres. En el caso de ser dos, se escoge cualquiera de ellos, y en el caso de ser tres, se usa el de al medio como punto de 45.
(57) partida. En el caso de la Figura 3-35, detalle A, existen 3 posibles puntos, a, b y c para comenzar a ordenar el vector C 2 , en este caso se escoge el de al medio, b, como el punto inicial b12 . El segundo punto es el que dará el sentido de avance del recorrido y para que sea igual al del vector B 1 , el segundo punto del vector B 2 , debe, además de pertenecer a la triangulación de b12 , pertenecer a la triangulación del segundo o tercer punto de B 1 . Luego, continuamos al igual que con el primer vector con el orden del vector C 2 , donde. . bn2+1 ∈ ∆bn2. . bn2+1 ≠ bm2 con m = 1, L, n. Detalle A. b31 a b =b 2 1. b21 b11 c. Figura 3-35: RB, detalle A. Ordenamiento vector C2, selección del primer punto. Para el resto de los vectores, el algoritmo es el mismo, dependiendo siempre del vector anterior. Este algoritmo es bastante simple en su desarrollo, pero se generan errores en distintos casos.. 46.
(58) Problema 1: Si observamos la Figura 3-36, detalle B, existe una intersección de triangulaciones donde no hay punto marcado, en esta zona efectivamente hay un punto que pertenece al vector C 6 , pero no se consideró al momento de ordenar los puntos. A este punto lo llamaremos ci6 .. El problema se genera dado que los puntos c h6 y c k6 también son vecinos entre sí (aunque no este mostrado en la figura), es decir pertenecen a una misma triangulación. Cuando se está ordenando este vector, o cualquier otro donde suceda el mismo problema y este punto es considerado, el algoritmo se encuentra en la siguiente situación: Se tiene el punto bn6 = c 6j perteneciente al vector ordenado B 6 , y necesitamos encontrar el siguiente, bn6+1 . Existen 2 puntos pertenecientes a C 6 que cumplen con ser vecinos de bn6 y a la vez son distintos a bn6−1 , estos serían ci6 y c k6 . Como el algoritmo admite sólo uno, escogerá cualquiera de los dos. Opción A: Si el algoritmo escoge bn6+1 = ci6 , luego, para encontrar bn6+ 2 , existe un. sólo punto que cumple con pertenecer a C 6 y a la triangulación de bn6+1 y es distinto de bn6 , este punto sería c k6 , luego seguiría con c 6j y el vector se ordenaría correctamente, ver Figura 3-37.. 47.
(59) Detalle B. c h6. c. 6 i. 6 c k6 c j. punto eliminado. Figura 3-36: RB, Sección B, Problema 1. Opción B: Si el algoritmo escoge bn6+1 = c k6 , luego, hay que encontrar bn6+ 2 .. Nuevamente nos encontramos con dos puntos, ci6 y c 6j , que cumplen con pertenecer a la triangulación de bn6+1 y son distintos de bn6 .. Opción B.1: Si se escoge bn6+ 2 = c 6j el vector seguirá ordenándose correctamente, ya. que ci6 no pertenece a la triangulación de c 6j y por lo tanto no se escogerá para continuar con el orden del vector. Opción B.2: Si se escoge bn6+ 2 = ci6 el algoritmo continuará con la búsqueda de. bn6+3 , y no existe ningún punto que cumpla con las condiciones impuestas ( bn6+3 ∈ ∆bn6+ 2 y bn6+3 ≠ bm6 ). De esta forma, el algoritmo se detiene y resulta un vector B 6 incompleto.. 48.
Documento similar
Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en
que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el
Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),
En suma, la búsqueda de la máxima expansión de la libertad de enseñanza y la eliminación del monopolio estatal para convertir a la educación en una función de la
Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre
(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,
6 Para la pervivencia de la tradición clásica y la mitología en la poesía machadiana, véase: Lasso de la Vega, José, “El mito clásico en la literatura española
d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que