Computational geometry
Upcoming SlideShare
Loading in...5
×
 

Computational geometry

on

  • 1,852 views

some geometric algorithms

some geometric algorithms

Statistics

Views

Total Views
1,852
Views on SlideShare
1,344
Embed Views
508

Actions

Likes
0
Downloads
14
Comments
0

1 Embed 508

http://aannewball.wikispaces.com 508

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Computational geometry Computational geometry Presentation Transcript

    • Modelling protein packing (SNAPP, image by Stephen Cammer). Computational Geometry Ing. Andrés Adolfo Navarro Newball, MSc, PhD Senior Lecturer and Researcher Pontificia Universidad Javeriana, Cali, Colombia
    • Definición Rama de las ciencias de la computación Estudia algoritmos que pueden ser formulados en términos de geometría O algoritmos puramente geométricos Uso de computadoras para resolver algoritmos geométricos
    • Definición“The computer-based representation, analysis, synthesis (design) and computer controlled manufacture of two- and three-dimensional shapes.“ FORREST, A.R. Computational Geometry. Proc. Roy. Soc. Lond. A, Vol. 321, 1971.
    • Algunos problemas Convex hull:  Dada una serie de puntos hallar el polígono / poliedro mas pequeño que los contiene a todos Intersecciones entre objetos TriangulaciónDiagramas de Voronoi, (primera aplicación) Ruta Euclidiana mas corta:  Conectar dos puntos en el espacio Euclidiano Vecindad de un punto Rayo mas cercano a un objeto Etc
    • Clases de problemas Convex Hull Detección y calculo de intersecciones Optimización geométrica Consulta geométrica Proximidad
    • Algunos ProblemasThree-dimensional geometry is inherently much more complex than two- dimensional geometry, and many two- dimensional algorithms do not extend easily, if at all, to three dimensions.
    • Algunos problemasIn particular, students should get familiar with quad- or k-d trees, range trees and segment trees. Also, they should see the concept of multi-level data structures.
    • Objetivo Studythe intrinsic difficulty of geometric computation under a certain computation model and to devise provably efficient algorithms for the problems at hand
    • Picking de vérticesThe distance between a ray (X1, X2) and avertex X0 can be obtained as follows X 2 X1 X1 X 0 dWhere, X 2 X1X1 = (x1, y1, z1) X2X2 = (x2, y2, z2) dX0 = (x0, y0, z0) X1 X0 Ej: gluUnProject en OpenGl
    • Angulo entre dos líneas Forthe two lines in the plane with endpoints (X1, X2) and (X3, X4), the angle between the two is given by: X 2 X1 X 4 X 3 cos X 2 X1 X 4 X 3
    • Punto en polígono Dado un punto en un plano. Esta dentro o fuera de un polígono dentro de ese plano? Find the vectors connecting the point to each of the triangles three vertices and sum the angles between those vectors. If the sum of the angles is 2*pi then the point is inside the triangle, otherwise it is not
    •  If you take the cross product of [B-A] and [p-A], youll get a vector pointing out of the screen. On the other hand, if you take the cross product of [B-A] and [p-A] youll get a vector pointing into the screen. Any point p where [B-A] cross [p-A] does not point in the same direction as [B-A] cross [C-A] isnt inside the triangle
    • Distancia punto plano
    • Vecindad de un puntoutilizando Direct EdgesCalculating a neighbourhood This calculation returns the number of neighbours of a vertex and their average coordinate value. In Figure 3b vertex c has 4 neighbours (a, b, e, d) and their average is obtained with (16). Our algorithm deals with closed manifolds, boundaries and distorted polygons. Let us assume that the first detected outgoing halfedge in Figure 3b is HE 2. First, we add vertex a to the average and increment the neighbourhood. Then, we find the opposite halfedge (in this case 10). If it is the 2 halfedge of the next face we subtract 2 in order to find the halfedge which points to the next vertex. If it is the 0 or 1 halfedge of the next face we add 1 in order to find the halfedge which points to the next vertex. Then, we add this vertex to the average and increment the number of neighbours. The algorithm continues until the halfedge pointing to the next vertex is equal to the first halfedge or until an edge or a distortion is detected (Table 2).Average of c-neighbours = (a + b + e + d) / 4 (16)
    •  Find OutgoingHalfedge  AverageFirstVertex  Increment Neighbourhood size  Repeat  Get OppositeHalfEdge  Get NextHalfedgeInRing adding 1  Add vertex to average  Increment Neighbourhood size  Until RingComplete or Boundary or  Distortion
    • Como ajustar una piel a unaperra?
    • Proyección con coordenadasbaricentricas Ver: Baricentricas.PDF
    • O tal vez interactivamente?
    • Incremental
    • Linea de escaneo
    • Dualidad geométrica Mapeo de una transformación geométrica a un problema dado Preserva ciertas propiedad geométricas Manipulación de objetos de una forma mas conveniente Ejemplo:
    • Dividir y conquistar Partirel problema en sub-problemas dando solución a cada sub-problema recursivamente Combinar las soluciones para obtener la solución final
    • Computer Science Department, Pontificia Universidad Javeriana, CaliTriangulación
    • Polígono regularA regular polygon is a polygon which is equiangular (all angles are equal in measure) and equilateral (all sides have the same length). Regular polygons may be convex or star.
    • Triangulación DelaunayA Delaunay triangulation for a set P of points in the plane is a triangulation DT(P) such that no point in P is inside the circumcircle of any triangle in DT(P). Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the triangulation; they tend to avoid skinny triangles. The triangulation was invented by Boris Delaunay in 1934
    • Triangulación DelaunayVértices, puntos en el espacio de un modelo poligonal (Cignoni et. al.)1. Crear un borde en un punto inicial de la serie el punto más cercano a este.  Este borde es insertado en una lista de bordes activos
    • Triangulación Delaunay2. Se inicia un proceso iterativo en el que un borde puede generar o no un nuevo triangulo  Si no genera un triangulo, el borde es removido de la lista de bordes activos  El ciclo continua hasta que todos los bordes han sido removidos de la lista
    • Seleccionando el primertriangulo Un borde genera un triangulo cuando hay un punto cerca al borde que no tiene otro punto en el circulo circunscrito por los vértices del triangulo
    • Removiendo un borde Si se toma un borde y no es posible construir un triangulo que no contenga un cuarto punto dentro de su circulo limitante  El borde es un limite o,  Hay triángulos alrededor de el  Aquí, el borde se elimina de la lista de bordes activos
    • El próximo triangulo Crear un triangulo agrega nuevos bordes a la lista de bordes activos de manera que el proceso de triangulación continua
    • Delaunay y Voronoi The Delaunay triangulation with Connecting the centers all the of the circumcircles circumcircles and produces the Voronoi their centers (in diagram (in red). red).
    • Diagrama de Voronoi In mathematics, a Voronoi diagram is a special kind of decomposition of a metric space determined by distances to a specified discrete set of objects in the space, e.g., by a discrete set of points. It is named after Georgy Voronoi, also called a Voronoi tessellation, a Voronoi decomposition, or a Dirichlet tessellation (after Lejeune Dirichlet), In the simplest case, we are given a set of points S in the plane, which are the Voronoi sites. Each site s has a Voronoi cell, also called a Dirichlet cell, V(s) consisting of all points closer to s than to any other site. The segments of the Voronoi diagram are all the points in the plane that are equidistant to the two nearest sites. The Voronoi nodes are the points equidistant to three (or more) sites
    • Delaunay en más dimensiones For a set P of points in the (d- dimensional) Euclidean space, a Delaunay triangulation is a triangulation DT(P) such that no point in P is inside the circum-hypersphere of any simplex in DT(P). In general, computing a Delaunay triangulation takes time O(dn2).
    • Ventaja, la malla se crea lomás regular posible
    • Pero qué es un símplice? Una malla en tres dimensiones puede verse como un espacio topológico que admite una triangulación por un complejo simplicial. Los complejos simpliciales quedan definidos por sus vértices y símplices; aquí, cada n-símplice es un conjunto de n+1 vértices
    •  En concreto, un complejo simplicial K consiste en un conjunto de vértices VK y un conjunto SK cuyos elementos son subconjuntos finitos no vacíos de VK (llamados simplices) Los complejos simpliciales se suelen representar por medio de una matriz de incidencia (MI), muy conveniente para cálculos computacionales, cuyas columnas son etiquetadas por sus vértices, y las filas son etiquetadas por los simplices.
    • Computer Science Department, Pontificia Universidad Javeriana, CaliPartición espacial
    • Definición Descomposición de un solido en una colección de sólidos juntos Estos sólidos son figuras mas primitivas que el solido que se esta descomponiendo
    • Descomposición de celdas Serie de celdas primitivas Típicamente parametrizadas y a menudo curvas Componemos objetos complejos a partir de primitivas pegándolos sin que se intercepten
    • Enumeración de ocupaciónespacial Caso especial de descomposición de celdas Objeto se descompone en celdas iguales organizadas en un grid regular Las celdas se conocen como voxels (volume element) Cubo, el mas común (cuberille)
    • Enumeración de ocupaciónespacial Controla ausencia o presencia de una celda en cada posición del grid Para representar un objeto:  Cuales celdas están ocupadas y cuales no Es solo una aproximación N3 celdas ocupadas se necesitan para representar un objeto a una resolución n en cada dirección
    • Gery’s game, PixarSubdivisiónde superficies In. Andrés Adolfo Navarro Newball, MSc, PhD
    • Introducción Subdivision surfaces help in the creation and refinement of proper 3D mesh models They are capable of representing an arbitrary geometrically unrestricted topology.
    •  They produce an efficient hierarchical structure and an object can be modelled as a low resolution control mesh from which we can generate new meshes by refining the previous one
    •  Some subdivision methods such as Catmull and Clark work on quadrilaterals Some extend subdivision to a n-sided problem and are not restricted to triangles such as Doo and Sabin Others such as butterfly, √3 Subdivision and Loop are specialised to triangles
    • Definicion M0(P0, K0) as the original coarse mesh (which can be used as the control mesh) Mj (Pj, Kj) as the j times subdivided mesh Here,Pj are the mesh points at level j of subdivision and Kj contains the description of the topology at level j
    •  Mj,with j  ∞ is the approximation of a B spline limit surface
    • Subdivision schemeA subdivision scheme S takes the vertices from level j to level j+1 so that S(K j) = K j + 1.
    • StencilA subdivision matrix or stencil SM maps a mesh Mj to a topologically equivalent refined mesh Mj+1 Eigenvalues or characteristic roots  Special set of scalars associated with linear systems of equations such as matrix equations.
    •  In a subdivision scheme S, the eigenvalues of the subdivision matrix are important to determine if the method converges to a limit smooth surface. All subdivision schemes must guarantee adequate design of the SM stencil so that eigenvalues have a certain distribution and a continuous surface approximating the limit surface can be generated
    •  InSM, every row is a rule to compute the position of a new vertex and every column tells how one old vertex contributes to the vertex positions in the refined mesh
    • Refinement In stationary methods the refinement functions are the same for every subdivision level Different rules are applied to define sharp features, creases or to deal with extraordinary vertices Stop conditions can be used for adaptive refinement In some methods old vertices are repositioned for smoothing
    • Subdivision techniques fortriangular meshes
    • Butterfly Butterfly subdivision converts each face into four using edge vertices. Artefacts and discontinuities are produced in vertices with valence different from 6 Never produces smooth surfaces on extraordinary vertices and incorrect smooth regions can appear near high valence vertices due to eigenclustering It is based on dyadic split (divide every edge in two) and does not produce C2 continuity
    • Modified butterfly Deals with artefacts of the original butterfly Approximates the behaviour of a C2 surface based on dyadic split Eigenclustering is avoided
    • Loop One of the simplest C1 subdivision schemes Stencils are smaller and convergence rate is better than in modified butterfly Based on dyadic split and is not C2 at extraordinary vertices Does not look smooth for large valences, due to eigenclustering
    • Modified Loop Increases the stencil in a minimal way around a vertex and avoids eigenclustering Vertices have better structure at extraordinary points. However, ripples appear
    • Tertiary Loop Uses three stencils. It achieves bounded curvature, manifold support, and convex Hull. C2 continuous No rules have been defined to deal with boundaries or with sharp features.
    • √3 Subdivision Stationary subdivision scheme with slower topological refinement with trisection of every original edge (every two steps) Inserts a new vertex at the centre of every face
    •  Then, it creates the new faces
    •  And flips every original edge
    •  Ituses simple stencils of minimum size and maximum symmetry. Here, a new vertex is calculated as the average of the three old ones (a new vertex only affects one face)
    •  Then, the old ones are relaxed using
    •  The scheme uses a generation index to perform adaptive refinement and allows sharp feature lines. It is C2 continuous except at extraordinary points. All new vertices have valence 6 and the valence of the old ones is not changed. Produces more levels of subdivision with lower number of triangles and simpler rules
    • Isosurface extractionIng. Andrés Adolfo Navarro Newball,MSc, PhDSenior Lecturer and ResearcherPontificia Universidad Javeriana, Cali,Colombia
    • Resumen Propuesto por Lorensen y Cline Crea mallas triangulares a partir de datos médicos en 3D Dividir y conquistar para determinar conectividad entre tajadas Procesa los datos en un orden Scan Line Calcula los vértices de los triángulos con interpolación lineal El gradiente de los datos es usado como información de sombreado
    • De donde vienen lasimágenes? Tomografíacomputarizada Resonancia magnetica
    • Introducción Imágenes anatómicas creadas a partir de múltiples tajadas en 2D Apoyo en visualización Crear representación poligonal de superficies de densidad constante a partir de un arreglo de datos en 3D
    • Algoritmos médicos en 3D
    • Adquisición de datos Hardware de imágenes medicas Produce múltiples tajadas en 2D
    • Procesamiento de datos Técnicas de procesamiento de imágenes para identificar estructuras en datos 3D o para filtrar información
    • Construcción de superficies Modelar la superficie a partir de datos en 3D Normalmente formado por voxels o polígonos
    • Despliegue Renderizacion de la superficie
    • Computer Science Department, Pontificia Universidad Javeriana, Cali Cuadros marchantesCon el apyo de: Dra. Helen Wright
    • Computer ScienceDepartment, PontificiaUniversidad Javeriana, Cali
    • Computer ScienceDepartment, PontificiaUniversidad Javeriana, Cali
    • Computer ScienceDepartment, PontificiaUniversidad Javeriana, Cali
    • Computer ScienceDepartment, PontificiaUniversidad Javeriana, Cali
    • Cubos marchantes Dos pasos:  Localizar la superficie correspondiente a un valor especificado por el usuario y crear los triángulos  Calcular las normales en cada vértice de cada triángulo para asegurar la calidad de la imagen Dividir y conquistar
    •  Idea:  Localizar la superficie en un cubo lógico creado a partir de 8 pixels, 4 de cada par de tajadas adyacentes  El algoritmo detecta como la superficie intercepta este cubo y se mueve o “marcha” al cubo siguiente
    • Intercepción en un cubo Se asigna un uno al vértice de un cubo si el valor de datos en ese vértice es mayor o igual que la superficie que se esta construyendo Estos vértices están dentro o sobre la superficie Vértices cuyo valor es menor que el de la superficie reciben un cero y están fuera de la superficie La superficie intercepta los bordes de los cubos en donde un vértice esta por fuera de la superficie (1) y otro esta dentro de la superficie (0) Con esta asunción se determina la topología de la superficie al interior de un cubo, encontrando la posición de la intercepción mas adelante
    •  8 vértices en cada cubo 2 estados:  Fuera  Dentro 28 = 256 formas en que un cubo intercepta una superficie Se enumeran los 256 casos y se crea una tabla look up de intercepciones superficie borde Gracias a la simetría se puede reducir a 14 patrones que permutados producen los 256
    •  Se crea un índice para cada caso, basado en el estado del vértice Se utiliza el índice para decir que superficie intercepta Interpola la intercepción de la superficie en el borde
    • Referencias MARCHING CUBES: A HIGH RESOLUTION 3D SURFACE CONSTRUCTION ALGORITHMWilliam E. Lorensen, Harvey E. Cline Proyecto humano visiblehttp://www.nlm.nih.gov/research/visible/visible_human.html Development of an Interactive Module to Enhance and Understand Cavity Navigation Holanda, Studies In Health Technology And Informatics ISSN: 0926-9630, 2007 vol:125 fasc: págs: 340 - 343 Autores: ANDRES ADOLFO NAVARRO NEWBALL, FRANCISCO JULIAN HERRERA BOTERO, CESAR AUGUSTO MARIN, Using an interactive module to enhance and understand 3D cavity navigation: a patient’s view. Inglaterra, Journal Of Telemedicine And Telecare ISSN: 1357- 633X, 2007 vol:13 fasc: S1 págs: 13 - 15 Autores: ANDRES ADOLFO NAVARRO NEWBALL, FRANCISCO JULIAN HERRERA BOTERO, CESAR AUGUSTO MARIN
    • Bibliografía Kobbelt L. √3 Subdivision. Annual conference on Computer graphics and interactive techniques Proceedings, pp. 103 – 112, 2000 Efficient Mesh Generation Using Subdivision Surfaces. Andrés Adolfo Navarro Newball, Geoff Wyvill, Brendan McCane
    • Bibliografía http://www.geometrictools.com/LibMathematics/LibMathematics. html Wikipedia An introduction to ray tracing. Glassner DeWall. A fast divide & conquer Delaunay triangulation algoritm. Cignoni http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html Navarro N AA. The Implementation of a Windows 95 based virtual environments knee arthroscopy training system (PC VEKATS). Tesis maestria, 1997 ANDRES ADOLFO NAVARRO NEWBALL, LUIS EDUARDO MUNERA, FRANCISCO JULIAN HERRERA BOTERO, "Un método de compresión de mallas basado en una representación simplicial" . En: Colombia Revista S&T : Sistemas & Telemática ISSN: 1692-5238 ed: v.6 fasc.12 p.75 - 87 ,2008
    • Bibliografía ACM TRANSACTIONS ON GRAPHICS. Special Issue Guest Editors. Robin Forrest, Leo Guibas, Jurg Nievergelt. Guest Editors Introduction to Special Issue on Computational Geometry Computational Geometry. D. T. LEE Computational Geometry A Survey. D. T. LEE, SENIOR MEMBER, IEEE, AND FRANCO P. PREPARATA, FELLOW, IEEE Teaching Computational Geometry Mark H. Overmars Computational Geometry: A Retrospective Abstract. BERNARD CHAZELLE www.mathworld.com