Curvas de Bézier Héctor Navarro Interpolación Lineal • Interpolación lineal: sean a,b dos puntos en 2. El conjunto de puntos de la forma x(t) = (1-t)a + tb, t definen la línea recta que pasa por a y b. Esta también es conocida como la ecuación paramétrica de la recta. x(t) = (1-t)a + tb = a + t(b-a), t Interpolación Lineal x(t) = (1-t)a + tb, t t=0 x(t)=a t=1 x(t)=b t<0 x(t) está “a la izquierda de a” t>1 x(t) está “a la derecha de b” 0<t<1 x(t) está dentro del segmento a,b Algoritmo de “de Casteljau” • De Casteljau (1959) ingeniero de Citroën, introduce el algoritmo para despliegue de curvas basadas en puntos de control. No publicó sus trabajos, pero Bézier (1966),ingeniero en Peugeot, sí los publicó, pero basándose en los polinomios de Bernstein. Algoritmo de “de Casteljau” • Dados b0, b1,b2…bn 2, y t[0,1] • Con r=1..n, i = 0..n-r, bi0 (t ) bi bir (t ) (1 t )bir 1 (t ) tbir11 (t ) • • • • Puntos de control = b0, b1,b2…bn Dichos puntos forman el polígono de control Grado de la curva = n n+1 puntos de control Algoritmo de “de Casteljau” b b00 0 1 b b11 0 1 3 b b 0 1 0 2 0 b b01 0 0 b 0 2 b b30 1 1 b 2 0 2 1 b 3 0 b r 1 i b r 1 i 1 b (t ) (1 t )b (t ) tb r i b30 b 1 2 b12 b20 b21 (t ) r = 1..n, i = 0..n-r Propiedades de la Curva de Bézier • Invarianza afín: obtener b0n (t ) y luego aplicar la transformación afín resulta igual que aplicar dicha transformación a los puntos de control y luego evaluar b0n (t ) . Esta propiedad es una consecuencia del algoritmo de “De Casteljau” el cual se basa en interpolaciones lineales. Ellas son invariantes afines, e igualmente una secuencia de ellas. Propiedades de la Curva de Bézier • Invariante ante transformación afín del parámetro: la curva está definida en t[0,1], pero podría reparametrizarse el parámetro por ejemplo para definirse en [a,b], manteniendo la invarianza afín. Note que el map de [0,1] [a,b] es afín. b (t ) r i b t ba r 1 i b (t ) t a ba r 1 i 1 b (t ) Propiedades de la Curva de Bézier • Cápsula convexa: la curva está dentro de la cápsula definida por los puntos de control. Esto se debe a que iterativamente se hace combinación baricéntrica convexa de puntos que están dentro de la cápsula convexa, y el resultado de cada combinación (por ser convexa) también cae dentro de la cápsula por definición. Propiedades de la Curva de Bézier • Interpolación de puntos extremos: la curva pasa por los puntos extremos b0 y bn. Se puede demostrar evaluando los casos t=0 y t=1. • Se puede diseñar con curvas de bézier porque estas “mimetizan” la forma del polígono. Hay cierto control local. Subdivisión La curva de Bézier usualmente está definida en [0,1]. Pero para un valor t=c, la misma puede partirse en dos curvas [0,c], [c,1], cuyos polígonos de control se obtienen del mismo algoritmo de De Casteljau. Subdivisión b b b b 0 1 2 0 0 2 1 1 2 1 b 1 2 b 3 0 b 1 0 b 0 0 b 0 3 b Subdivisión 0 2 1 1 b b 0 1 b 2 1 b 1 2 b 2 0 b 3 0 b 1 0 b 0 0 b b (c), b (c), b (c), b (c) 0 0 1 0 2 0 3 0 0 3 b Subdivisión 0 2 1 1 b b 0 1 b 2 1 b 1 2 b 2 0 b 3 0 b 1 0 b 0 0 b b (c), b (c), b (c), b (c) 3 0 2 1 1 2 0 3 0 3 b Subdivisión Cómo saber si se le hace click a una curva?. Una opción es chequear la distancia del click a los segmentos discretizados de la curva. O bien, utilizar recursivamente subdivisión, pues cada polígono se va semejando más a la curva mientras más se subdivide. Elevación de grado Supongamos que estamos modificando una curva de grado n. Luego de cierto rato vemos que no es lo suficientemente flexible para modelar lo deseado. Una alternativa es agregar un punto de control más para darle mayor flexibilidad, pero inicialmente manteniendo la curva inalterada. Esto es elevación de grado. Elevación de grado • Supongamos una curva de Bézier con N+1 puntos de control P0..PN. • Elevar el grado de la curva consiste en encontrar un nuevo conjunto de puntos de control Q0..QN+1 que genere la misma curva de Bezier Elevación de grado • Primero es obvio que Q0 = P0 y QN+1 = PN • Luego Elevación de grado i i/(n+1) 1 0.2 2 0.4 3 0.6 4 0.8 Elevación de grado Elevación de grado Elevación de grado