GEOMETRIA DE FIGURAS

Download Report

Transcript GEOMETRIA DE FIGURAS

GEOMETRIA DE FIGURAS
ÍNDICE
1.
Geometría de Interacción con Figuras.
1.1 Análisis de Conversión
1.2 Distancia de un punto a un objeto
1.3 Límites de un objeto
1.4 punto más cercano a un objeto.
1.5 Intersecciones
1.6 Interior/Exterior.
2.
Ecuaciones geométricas:
2.1 Implícitas.
2.2 Paramétricas
3.
Figuras de Trayectorias Definidas
3.1 Líneas.
3.2 Círculos
3.3 Arcos
3.4 Elipses y Arcos Elípticos.
3.5 Curvas
3.6 Figuras de trayectorias troceadas
4.
Figuras Rellenas.
4.1. Rectángulos.
4.2.Círculos y Elipses.
4.3. Pie Shapes.
4.4 Figuras de Límite definido.
1.Geometría de Figuras.
Introducción:
• La parte central de la mayoría de las aplicaciones consiste en el
despliegue de objetos que el usuario está intentando manipular.
• Necesitamos entender la geometría de esos objetos, para escribir
código que interactúe con esas figuras:
– Hablaremos sobre las ecuaciones geométricas para figuras primitivas.
– Veremos los tipos de problemas geométricos a los que nos enfrentaremos
cuando interactuamos con estas figuras.
1. Geometría de Interacción con Figuras
• La geometría de casi todos los objetos está basada en un conjunto de
puntos de control.
– Puntos de control: son puntos en el plano 2D que pueden usarse para
definir la geometría deseada.
– No son la única forma en la que la geometría puede ser definida.
– La razón de su uso es la naturaleza interactiva de estos modelos.
• Expresaremos la geometría por medio de puntos de control y
resolveremos las ecuaciones para propósitos interactivos.
1.1 Análisis de conversión
• Es un problema importante en gráficos de computadora.
• Consiste en tomar la especificación geométrica de un objeto y derivar
el conjunto de pixeles a algún buffer que corresponda a ese objeto.
– Es esencial para el proceso de dibujo por lo que debe ser rápido.
– Todos las de herramientas interactivas proporcionan rutinas que realizan
estas tareas.
1.2 Distancia de un punto a un objeto.
• Se trata de ser capaces de seleccionar un objeto con el ratón.
• Interactivamente es difícil posicionar el ratón exactamente sobre una
línea
• La geometría elemental que se requiere para este problema es el
cálculo de la distancia perpendicular entre un punto y una línea u otra
figura.
• Conocida la distancia se prueba si está lo suficientemente cerca para la
selección.
1.3Límites de un objeto
• Selección de un objeto:
– Cuando ocurre un evento de ratón debemos ser capaces de
determinar cuál objeto de un conjunto de objetos está siendo
referenciado.
• El cálculo de la distancia perpendicular a cada objeto es
bastante costoso.
• Cálculo del rectángulo limitado para un objeto.
– Dando los puntos de control, su cálculo es fácil.
– Primero calculamos el rectángulo limitado de cada objeto,
y realizamos entonces la geometría más costosa sólo si el
ratón está realmente en el interior de rectángulo limitado.
1.4 Punto más cercano a un objeto.
• Necesitamos determinar el punto de la figura que está más próximo a
la posición del ratón.
1.5 Intersecciones.
• Cálculo de intersecciones de dos objetos
– Métodos algebraicos:
• Líneas: dos ecuaciones lineales.
• Círculos , arcos y elipses: ecuaciones cuadráticas.
– Métodos numéricos:
• Elipses rotadas: polinomios de grado 4.
• Splines y curvas: ecuaciones cúbicas.
1.6 Interior/Exterior
– La selección de figuras rellenas (círculos, rectángulos, polígonos)
se realiza haciendo la prueba del rectángulo limitado y después se
realiza la prueba más costosa.
2. Ecuaciones geométricas.
• 2.1Ecuaciones Implícitas
:
– Son de la forma: F(x,y) = 0
– Ventajas:
• Dividen el plano 2D en dos semiespacios, esto sirve para calcular si
un punto está dentro o fuera de alguna región.
• Podemos normalizar la ecuación para que nos de la distancia real a un
objeto , multiplicando los coeficientes por alguna constante.(No
funciona para todas las figuras.)
• 2.2 Ecuaciones Paramétricas:
– Descripción de figuras 1D: usan un solo parámetro:
• x=G(t) y=H(t)
– Descripción de figuras 2D: usan dos parámetros.
• x=K(s,t) y=(s,t)
3. Figuras de Trayectorias definidas
• Definición: Son objetos 1D dibujados en 2D. No tienen
exterior ni interior.
• La geometría de una figura se determina por la geometría
de la trayectoria que es fronteriza.
• Tipos de Trayectorias:
– Líneas.
– Círculos.
– Arcos.
– Elipses y arcos elípticos
– Curvas.
3.1 Líneas
• Ecuación implícita:
– Ax+By+C=0
El vector [A,B] se calcula a partir de los puntos de control:
A=Y1-Y2
B=X2-X1
Se sustituye un punto de la línea y se calcula para C:
C= -AX1- BY1
Sustituyendo cualquier punto (x,y) en la siguiente ecuación, nos dará
la distancia de la línea en múltiplos de la longitud de [A,B]:
línea(x,y)=AX+BY+C
– Línea(x,y) resuelve varios problemas geométrico:
• Si línea(x,y)=0 , entonces el punto (x,y) reside en la línea
• Probar si un punto está próximo a la línea
• Ecuación Paramétrica:
– Usamos un vector con inicio en (X1,Y1) y fin en (X2,Y2).
• t: Fracción de distancia que queremos mover a lo largo del vector.
x = (X2+X1)t + X1
si t=0 => (X1,Y1)
y = (Y2+Y1)t + Y1
si t=1=> (X2,Y2)
si 0 < t < 1=>puntos intermedios
• Rectángulo Limitado
– Propiedad de “Cubierta-Convexa”:
• Es el polígono más pequeño que contiene a todos los puntos..
Si un objeto cumple esta propiedad , el cálculo del rectángulo-limitado
es fácil.
– Cálculo del rectángulo limitado para una línea por sus puntos de
control:
•
•
•
•
Izquierda=Min(coordenadas X de todos los puntos de control)
Tope=Min(coordenadas y de todos los puntos de control)
Derecha=Max(coordenadas X de todos los puntos de control)
Fondo=Max(coordenadas y de todos los puntos de control)
3.2 círculos
• Modelo de centro y radio
• Cálculo del radio a partir de los puntos de control:
• Ecuación Implícita:
– Círculo: conjunto de puntos a una distancia fija del punto central.
– Ecuación para un círculo de R=1 y centro en el origen: (x2+y2)-1=0
• (x2+y2) = cuadrado de la distancia entre (x,y) y el origen.
– Se puede describir un círculo con centro (Xc,Yc) y radio R con la
ecuación:
• Ecuación Paramétrica:
– Basada en trigonometría:
• Dado el ángulo a , las ecuaciones son:
– x = Xc + R*cos(a)
– y = Yc + R*sen(a)
El ángulo a varía de 0 a 2
• Reformulamos las ecuaciones en función del parámetro t
– x = Xc + R*cos(2t)
– x = Xc + R*cos(2t)
El parámetro t varía de 0 a 1.
• Distancia de un punto a un círculo:
– Se deriva a partir de la ecuación implícita del círculo:
• Los puntos con distancias negativas están dentro
• Los puntos con distancias positivas permanecen dentro del
círculo.
• Punto más cercano a un círculo:
Usaremos un modelo de vector:
– (Xn,Yn) = distancia R desde (Xc,Yc) a lo largo de un vector en
dirección (x,y).
– 1º: construimos un vector de longitud 1 desde el centro a (x,y)
– 2º: obtenemos un vector en la misma dirección con longitud R,
multiplicando por R:
• Límites de un círculo.
– Cálculo del rectángulo limitado:
• Se usan las ecuaciones paramétricas calculando los puntos para t=0.0,
t=0.25, t=0.5 y t=0.75
3.3 Arcos
•
Arco: fragmento de un círculo. Podemos definir un arco
usando las mismas ecuaciones paramétricas que un
círculo.
– Hay que definir la parte restringida del círculo que
forma el arco
•
2 parámetros
–
–
•
Reformulamos las ecuaciones:
–
–
.
Parámetro inicio = 0.3
Parámetro fin =0.5
x= Xc +R*cos(2(b 0.2 +0.3))
y= Yc +R*cos(2(b 0.2 +0.3))
b= 0 a b=1 es igual que t=0.3 a t=0.5
• Selección de un punto en un arco.
– (X1,Y1): punto de selección introducido por el usuario. Si está
bastante cercano, consideraríamos el arco como seleccionado:
• 1º calculamos (Xn,Yn), punto más cercano al círculo.
• 2º calculamos el parámetro t para este punto más cercano
• 3º Comprobar que t se encuentra entre 0.3 y 0.5.
• Límites de un arco.
– Los puntos de control de un arco no cumplen la propiedad de
“cubierta convexa”.
– Por simplicidad, se usa el rectángulo limitado del círculo del arco
en lugar de un rectángulo más pequeño para el propio arco.
3.4 Elipses y Arcos Elípticos
• Elipses cuyos ejes mayor y menor son paralelos a los ejes x e y.
• Elipse: círculo de radio 1 que ha sido estirado en x por una distancia
W, y estirado en y por una distancia H.
– (L,T) Y (R,B): puntos de control del rectángulo limitado.
– (Xc,Yc),W y H son calculados a partir de los puntos de control.
• Ecuación Implícita y Paramétrica de una Elipse:
Estas ecuaciones se crean a partir de las ecuaciones para un círculo.
– Ecuación Implícita para una Elipse:
• Ecuación Paramétrica para una Elipse:
• Sustituimos W y H, por el radio en cada dimensión:
– x = Xc +W*cos (2t)
– y = Xc +H*sen (2t)
las ecuaciones para un círculo son un caso especial de las ecuaciones
para una elipse.
3.5 Curvas
•
•
Spline: curva que se descompone en varias curvas cúbicas que son
fácilmente conectadas.
–
Tipos de spline: curvas Bezier, curvas B-Spline, curvas CatmullRom.
–
Hay una curva entre cada par de puntos de control adyacentes.
–
Motivos:
• una única curva de alto grado polinomial es difícil de
manejar interactivamente.
Se trata de:
1. Definir la geometría de una única curva cúbica.
2. Definir el modo en el que se unen las curvas
• Ecuación cúbica:
– Forma matricial:
• C=matriz de coeficientes.
– 1ºDefinición de la matriz de coeficientes a partir de los puntos de
control:
• S, matriz de coeficientes constantes, característica para cada tipo de
curva.
Definición completa:
• Requisitos de continuidad .
– C(0): propiedad por la que dos curvas adyacentes comparten el
mismo punto en el lugar en donde se unen. Fácil de garantizar.
– C(1):Las derivadas son iguales en el punto de unión. Requisito más
común para unir curvas suaves.
– C(2):Las curvaturas son las mismas en el punto de unión.
Requisito bastante especializado.
Curvas Bézier
• Definidas por dos puntos de control intermedios y por dos puntos
finales.
• Proporciona a los usuarios un modelo interactivo para la manipulación
de la curvatura a través de los puntos de control.
• Conexión de dos curvas Bezier:
– C(0) es fácil haciendo P4 de la 1ªcurva = P1 de la 2ª curva.
– C(1) se obtiene haciendo colineal P3 y P4 de la 1ª curva con P1 y P2 de la
2ª.
– C(2) no ocurre de un modo fácil.
• Característica: los puntos de control cumplen la propiedad “cubierta
convexa”. Si tomamos el máximo y el mínimo para los cuatro puntos
de control se obtiene el rectángulo limitado para la curva.
Curvas B-Spline
• Número arbitrario de puntos de control P0 a Pn.
• Esta curva está formada por tres curvas cúbicas.
– Cada una tiene 4 puntos de control : de P(i-1) a P(i+2).
– Cada par de curvas adyacentes comparten tres puntos de
control.Esto garantiza que se cumple la continuidad C(2).
• Tiene la propiedad “ cubierta convexa”, entonces podemos calcular el
rectángulo limitado tomando el máximo y el mínimo de los puntos de
control.
Curvas Catmull-Rom
• La curva pasa por unos puntos específicos:
• La formulación para una Catmull-Rom es la misma que para una Bspline:
• No tiene la propiedad “cubierta convexa”. Se resuelve convirtiendo la
geometría Catmull-Rom en una geometría de Bézier:
3.6 Figuras de trayectorias troceadas
• Figuras creadas con la conexión de objetos primitivos.
• La geometría está determinada por la geometría de las figuras que la
componen.
• El rectángulo redondeado se compone de 4 líneas y 4 arcos elípticos.
• la otra figura es una concatenación de líneas rectas y curvas cúbicas.
4. Figuras Rellenas
• Figuras 2D con interior:
– Rectángulos
– Círculos y elipses.
– Pie Shapes.
– Figuras de límite definido.
• Determinar si un punto específico está dentro de la figura o fuera:
Si el ratón está dentro de la figura cuando se presiona el botón
entonces la figura será seleccionada. Si el ratón está fuera entonces no
será seleccionada.
4.1 Rectángulos
• La más simple de todas las figuras rellenas.
• Dando sus coordenadas podemos determinar fácilmente si está dentro, con las
ecuaciones:
– Izquierda  X  Derecha
– Tope  Y  Fondo
• Ecuación paramétrica para puntos interiores y exteriores:
Se define un eje para cada uno de los dos parámetros s y t, con origen en la
esquina superior-izquierda.
– X=Izquierda + s(Derecha –Izquierda)
– Y=Tope+t(Fondo-Tope)
– Para determinar si un punto (x,y) está dentro del rectángulo, se resuelve para los
parámetros s y t y se determina si permanecen dentro del rango de 0 a 1.
4.2 Círculos y Elipses.
• Ecuaciones paramétricas para el interior de un círculo:
– x=Xc+s* R* cos(2t)
– y=Xc+s*R*sen(2t)
– S es un parámetro radial.
• si s=0 entonces (x,y) está en el centro del círculo.
• si s=1 entonces las ecuaciones son las mismas que para una
circunferencia.
– t rodea a la circunferencia.
• Ecuaciones paramétricas para el interior de un Elipse:
– x=Xc+s* W* cos(2t) ; W radio en el eje x
– y=Xc+s*H*sen(2t) ; H radio en el eje y
– Si conocemos x e y, resolvemos las ecuaciones para s y t. Si están
dentro del rango de 0 a 1, entonces el punto (x,y) está dentro de la
elipse.
4.3 Pie Shapes
• Para determinar si un punto (x,y) está dentro de esta Pie shape elíptica
se resuelven las ecuaciones para s y t:
–x=Xc+s* W* cos(2(t(end-start)+start))
– y=Xc+s*H*sen (2(t(end-start)+start))
4.4 Figuras de límite definido
• Figuras sin geometría regular, compuestas por un número de piezas,
cada una de las cuales es una figura de trayectoria definida. Pueden
estar formadas por:
– Líneas rectas y curva cúbicas.
– Polígonos de líneas rectas.
– Curvas cúbicas.
– Curvas cúbicas y líneas rectas.
• Determinar si un punto de selección (x,y) está dentro o fuera de la
figura:
– 1º: Prueba de la caja limitada:
• Fácil y rápida, que descartará un gran número de figuras.
• Se construye tomando la unión de las cajas limitadas para cada
objeto.
– 2º: Si el punto de selección está dentro de la caja limitada se
aplica la prueba Par/Impar Interior/Exterior.
• Construimos una línea horizontal a través del punto.
• Realizamos las intersecciones de la línea horizontal con los bordes de la
figura.
• Contamos el número de intersecciones a la derecha del punto de selección.
Si es un número impar, el punto está dentro de la figura; de otro modo está
fuera.
– Excepción: Cuando un punto de intersección forma parte de dos
bordes.
• Bordes lineales: Se calcula la tangencia, si el borde es tangente a la línea
horizontal se cuenta dos veces(x2,y2), y si el borde atraviesa la línea se
cuenta una(x3,y3).
• Bordes curvados.(x4,y4) se calcula el punto de tangencia con la curva, si
dY/dX=0 se cuenta dos veces en vez de una.