Вы находитесь на странице: 1из 19

Programación Avanzada

Universidad del Aconcagua

Programación Avanzada
Aspectos geométricos

Esp. Ing. César Aranda


unidatos@gmail.com

Licenciatura en Informática y Desarrollo de Software


v.2014

Consideraciones Geométricas
 Geometría
 Parte de la matemática que estudia las propiedades y las medidas de
una figura en un plano o en un espacio.
 Formas de clasificación
 Geometría Euclidiana
 Geometría No Euclidiana (elíptica de Rienmann, hiperbólica de
Lovachevsky, topológica, fractal)
 Geometría plana (2D)
 Geometría del espacio (3D)
 Geometría proyectiva (3D a 2D)
 Geometría analítica (2D y 3D)
 Geometría descriptiva (3D en 2D)
 Geometría diferencial
 Geometría algorítmica (o computacional)
Esp. Ing. César Omar Aranda 2

Ing. César Omar Aranda 1


Programación Avanzada
Universidad del Aconcagua

Representación de Curvas y Superficies


mediante Ecuaciones Explícitas

Esp. Ing. César Omar Aranda 3

Representación de Curvas y Superficies


mediante Ecuaciones Implícitas

Esp. Ing. César Omar Aranda 4

Ing. César Omar Aranda 2


Programación Avanzada
Universidad del Aconcagua

Representación de Curvas y Superficies


mediante Ecuaciones Paramétricas

Esp. Ing. César Omar Aranda 5

Geometría algorítmica para Curvas y


Superficies No Triviales

Esp. Ing. César Omar Aranda 6

Ing. César Omar Aranda 3


Programación Avanzada
Universidad del Aconcagua

Modelar y Representar Objetos Reales


 Problema
 No hay un modelo matemático del objeto
 Solución
 Realizar una aproximación por trozos de: Planos, esferas, otras formas
'simples' de modelar.

http://www.foro3d.com/f121/modelado-paso-a-paso-cabeza-humana-con-autodesk-maya-70946.html
Esp. Ing. César Omar Aranda 7

Técnicas Algorítmicas de Modelado


 Superficies de malla poligonal
 Explícitas
 Apuntadores a una lista de vértices
 Apuntadores a una lista de aristas

 Curvas y Superficies 2D/3D


 Curvas cúbicas paramétricas
 Superficies bicúbicas paramétricas
 Curvas y Superficies de Hermite
 Curvas y Superficies de Bézier
 Curvas Splines y Superfices B-splines
 Superficies cuádricas
 NURBS (B-splines racionales no uniformes)
Esp. Ing. César Omar Aranda 8

Ing. César Omar Aranda 4


Programación Avanzada
Universidad del Aconcagua

Spline
 Es una curva diferenciable definida en porciones
mediante polinomios

Esp. Ing. César Omar Aranda 9

Técnicas Algorítmicas Específicas


 Para Envolventes convexas
 Diagramas de Voronoi
 Triangulaciones de Delaunay
 Interpolación de Lagrange
 Algoritmo de Aitken
 Interpolación de Hermite
 Algoritmo de Casteljau
 Curvas de Bezier
 Polinomios de Bernstein
 …

Esp. Ing. César Omar Aranda 10

Ing. César Omar Aranda 5


Programación Avanzada
Universidad del Aconcagua

Geometría Fractal
 Un fractal es un objeto geométrico fragmentado o irregular, cuya
estructura básica se repite a diferentes escalas (está estructurado).

Esp. Ing. César Omar Aranda 11

Técnicas Algorítmicas Fractales


 Sistemas de Funciones Iteradas (IFS)
 Reemplazo recursivo de imagen
 Ejemplos: Conjunto de Cantor, alfombra de Sierpinski, triángulo de
Sierpinski, curva de Peano, curva del dragón, copo de nieve de Koch o
Esponja de Menger, ...
 Algoritmos de Escape
 Definidos por una relación de recurrencia en cada punto del espacio
(por ejemplo, el plano complejo)
 Ejemplos: Conjunto de Mandelbrot, conjunto de Julia, fractal de
Lyapunov, …
 Algoritmos aleatorios
 Basados en procesos estocásticos o de difusión limitada
 Ejemplos: Movimiento browniano, vuelo de Lévy, paisajes fractales o los
árboles brownianos, …

Esp. Ing. César Omar Aranda 12

Ing. César Omar Aranda 6


Programación Avanzada
Universidad del Aconcagua

Construcción Fractal

Esp. Ing. César Omar Aranda 13

Imagen Digital y Espacios de


Coordenadas

Esp. Ing. César Omar Aranda 14

Ing. César Omar Aranda 7


Programación Avanzada
Universidad del Aconcagua

Consideraciones algorítmicas

 Coordenadas reales
 aReal: coordenada x real (float, double, …)
 bReal: coordenada y real (float, double, …)

 Coordenadas a escala
 escalad = N.pixels / unid.Reales
 a = (int)Math.round( escalaX * aReal );
 b = (int)Math.round( escalaY * bReal );

 Coordenadas de pantalla
 x0 + a (int)
 y0 – b (int)
 Con x0, y0 ya escalados
Esp. Ing. César Omar Aranda 15

Almacenamiento y Trazado

 Almacenamiento
 Mapas de bits
 Vectores

 Tratamiento gráfico
 3 Líneas trazadas Punto a Punto
 Definir y representar 3 objetos Línea
 Definir 1 Objeto Línea y representar 3 líneas
Esp. Ing. César Omar Aranda 16

Ing. César Omar Aranda 8


Programación Avanzada
Universidad del Aconcagua

Transformaciones Geométricas

Transformaciones Proyectivas

Transformaciones Afines
Homotecia

Transformaciones rígidas
Escalado
Desplazamiento
Cizallado
Rotación

Simetría

Esp. Ing. César Omar Aranda 17

Líneas y otros objetos gráficos afines

 Administrados como vectores

Esp. Ing. César Omar Aranda 18

Ing. César Omar Aranda 9


Programación Avanzada
Universidad del Aconcagua

Traslación de un Punto

 El objeto se mueve hacia arriba o hacia abajo, y hacia la


izquierda o derecha.

Esp. Ing. César Omar Aranda 19

Rotación de un Punto

 El objeto cambia su posición en el espacio sin alterar su


distancia al origen.

Esp. Ing. César Omar Aranda 20

Ing. César Omar Aranda 10


Programación Avanzada
Universidad del Aconcagua

Ejemplos de rotación a 45º


Rotación horaria: θ < 0
Rotación antihoraria: θ>0

Esp. Ing. César Omar Aranda 21

Escalado de Puntos

 Cambia la distancia entre objetos Punto, de forma


proporcional a factores de escalado Sx, Sy ,a lo largo de
los ejes x e y, respectivamente.

Escalado uniforme: Sx = Sy
Esp. Ing. César Omar Aranda Escalado diferencial: Sx ≠ Sy 22

Ing. César Omar Aranda 11


Programación Avanzada
Universidad del Aconcagua

Sesgado o Cizallado

 Deformación en uno o ambos ejes producida por el


desplazamiento relativo entre puntos.

Shx , Shy:
son factores
específicos para
cada punto. Su
valor es
directamente
proporcionales a
las relaciones de
posición relativa
entre puntos.
Esp. Ing. César Omar Aranda 23

Reflexión

 Efecto de espejo, que consiste en invertir las


coordenadas del objeto con respecto a uno cualquiera de
los dos ejes de coordenadas.

Esp. Ing. César Omar Aranda 24

Ing. César Omar Aranda 12


Programación Avanzada
Universidad del Aconcagua

Coordenadas homogéneas
 Simplifican las ecuaciones de cálculo cuando se
combinan transformaciones.
 Se logra que todas las matrices de transformación
operen como factores del vector de coordenadas,
evitando:

 Agregan un parámetro más a las coordenadas


estándares.

Esp. Ing. César Omar Aranda 25

Concatenación o Composición

Esp. Ing. César Omar Aranda 26

Ing. César Omar Aranda 13


Programación Avanzada
Universidad del Aconcagua

Orden de aplicación
de las transformaciones

Esp. Ing. César Omar Aranda 27

Transformaciones con API Java2D


 Traslación
 contextoGráfico.translate(double tx, double ty)

 Rotación
 contextoGráfico.rotate(double a)

 Escalado
 contextoGráfico.scale(double sx, double sy)

 Cizallado
 contextoGráfico.shear(double sx, double sy)
Esp. Ing. César Omar Aranda 28

Ing. César Omar Aranda 14


Programación Avanzada
Universidad del Aconcagua

Consideraciones de Trazado

Esp. Ing. César Omar Aranda 29

Sistema de Coordenadas Desplazado

Esp. Ing. César Omar Aranda 30

Ing. César Omar Aranda 15


Programación Avanzada
Universidad del Aconcagua

Rotación Java2D

Esp. Ing. César Omar Aranda 31

Escalado Java2D

Esp. Ing. César Omar Aranda 32

Ing. César Omar Aranda 16


Programación Avanzada
Universidad del Aconcagua

Cizallado Java2D

Esp. Ing. César Omar Aranda 33

Espacio Afín: Matriz de Transformación

de Rotation
de Desplazamiento de Escalado

de Cizallado
de Simetría o Reflejado
según recta: y = kx

Esp. Ing. César Omar Aranda 34

Ing. César Omar Aranda 17


Programación Avanzada
Universidad del Aconcagua

Transformaciones Afines en Java 2D

 Clases y Métodos
 class AffineTransform

 void setTransform(double t00, t10, t01, t11, t02, t12)

 void setToRotation(double theta, double x, double y)


 void setToScale(double sx, double sy)
 void setToShear(double shx, double shy)
 void setToTranslation(double tx, double ty)
 Shape createTransformedShape(Shape figuraBase)

 class Shape
Esp. Ing. César Omar Aranda 35

Transformación Afín Compuesta

Esp. Ing. César Omar Aranda 36

Ing. César Omar Aranda 18


Programación Avanzada
Universidad del Aconcagua

Simetría o Reflejado
 No tiene método propio
 Se obtiene mediante Matriz o escalado inverso
 Por ejemplo, para Simetría respecto de eje Y:

 podrían usarse
 .setTransform(-1, 0, 0, 1, 0, 0);
 .setToScale(-1, 1);

Esp. Ing. César Omar Aranda 37

Bibliografía
 Principal
 KLAWONN, F. (2008). Introduction to Computer Graphics, using Java 2D and 3D. Inglaterra:
Ed. Springler-Verlag.

 Referencias Complementarias
 http://gaussianos.com/una-interesante-introduccion-a-la-geometria-
computacional/
 http://www.tec-digital.itcr.ac.cr/revistamatematica/HERRAmInternet/Graficador-
Swing-java2D/node3.html
 http://www.docentes.unal.edu.co/cibermudezs/docs/CursoGeometriaFractal.pdf
 Rivero M., Francisco: Geometría Computacional, Tesis ULA, venezuela,
disponible en 2013
desde http://www.ciencias.ula.ve/matematica/publicaciones/libros/por_profesor/li
co/geometria_computacional.pdf
 Gullberg, Jan (1997): Mathematics from the Birth of Numbers. New York, Norton
& Company.
 http://www.kirainet.com/delaunay-y-voronoi/
Esp. Ing. César Omar Aranda 38

Ing. César Omar Aranda 19

Вам также может понравиться