330 likes | 499 Views
GEOMETRIA DE FIGURAS. ÍNDICE. 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:
E N D
ÍNDICE • 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(2t) • x = Xc + R*cos(2t) 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 • Parámetro inicio = 0.3 • Parámetro fin =0.5 • Reformulamos las ecuaciones: • 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 (2t) • y = Xc +H*sen (2t) 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 Catmull-Rom. • 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: • Definir la geometría de una única curva cúbica. • 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 B-spline: • 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(2t) • y=Xc+s*R*sen(2t) • 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(2t) ; W radio en el eje x • y=Xc+s*H*sen(2t) ; 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.