You are on page 1of 14

Curvas y Superficies para modelado geomtrico

Para representar curvas y superficies en CAGD (Computer Aided Geometric Design) se utilizan generalmente las representaciones implcita y paramtrica, pero fundamentalmente esta ltima !a representaci"n implcita #($,y)%& es muy til para curvas y superficies est'ndar (plano, cu'drica, toroide, etc ) y (ue son f'cilmente desplaza)les por medio de un cam)io en el trmino independiente Por e*emplo+ Circunferencia+ ($,$c)- . (y,yc)- % r- Cam)iando r la circunferencia se /infla0 o /desinfla0 Plano+ a$ . )y . cz % d Cam)iando d, el plano se desplaza conservando la normal Para curvas y superficies /li)res0 (free-form surfaces) se suele utilizar la representaci"n paramtrica, donde las coordenadas est'n representadas mediante funciones de uno o dos par'metros+ Curva+ P(u) %1$(u), y(u), z(u) 2 3uperficie+ P(u,v)%1$(u,v), y(u,v), z(u,v)2 4n general se restringe el con*unto de funciones mediante una base de funciones (ue suele ser de potencias o trigonomtrica Pero en CG, la m's utilizada es la primera y de un modo (ue facilita el procesamiento en la computadora 5na curva en serie (finita) de potencias se define mediante un con*unto (finito) de par'metros vectoriales ai+ P(u) % aiui (a(u el superndice del par'metro indicar' siempre potenciaci"n) Pero para el usuario no resulta sencillo definir el con*unto de par'metros (ue 6ace (ue la curva tenga la forma deseada !o (ue suele 6acerse es imponer un con*unto de puntos (ue definen la curva (ya sea por interpolaci"n o por apro$imaci"n) y re(uerir algn grado de suavidad de la curva, es decir (ue las derivadas varen de algn modo predeterminado Para el dise7o asistido de curvas y superficies se 6an desarrollado muc6os mtodos (ue logran los o)*etivos de simplicidad y eficiencia computacional Por razones 6ist"ricas y de conveniencia 6an so)revivido unos pocos y a(u estudiaremos con mayor profundidad los m's utilizados+ las curvas y superficies de 8zier y 95:83.

Curvas de Bzier
3e denomina curva de 8zier a un mtodo de definici"n de una curva en serie de potencias 4l mtodo consiste en definir algunos puntos de control, a partir de los cuales se calculan los puntos de la curva Descri)iremos el mtodo de construcci"n recursivo conocido como algoritmo de De Casteljau Para dos puntos, la curva es un segmento recto, definido en forma paramtrica por interpolaci"n de los puntos e$tremos+ P % (;,u)P& . uP; Donde los Pi son los puntos de control y u<&,;= el par'metro P; P; P;

PP P P P>

P-

P? P& P& P& Agregando un punto de control m's la curva ad(uiere m's inters+ se interpola linealmente en cada uno de los segmentos y luego entre los puntos resultantes, siempre con el mismo valor del par'metro Para m's puntos de control, el proceso se repite en forma iterativa !a poligonal (ue forman los puntos de control se conoce como polgono de control ;

Cam)iemos ligeramente la notaci"n para favorecer la interpretaci"n de las propiedades y el c"digo fuente @ndicaremos con un superndice el nivel de iteraci"n+ llamemos P i& a los puntos de control dados (nivel &) y aumentemos en uno el superndice con cada iteraci"n+ Pi*.; % (;,u) Pi* . u Pi.;* Con esta notaci"n, si 6ay n.; puntos de control (& a n) el punto de la curva es el P &n, y el di)u*o anterior (ueda como sigue+ & P;& P; P;& P;; P;; P; P-& P&? P&> P&;
&

P;? P--

P-& P-;

P&;
&

P&-

P&;
&

P&P>&

P?; P?& P& P& P& Por razones 6ist"ricas se llama orden de una curva de 8zier a la cantidad de puntos de control Para dos puntos de control, la curva es de segundo orden y primer grado, por cada punto de control (ue se agrega, se agrega adem's un paso de interpolaci"n, en donde los trminos en u (uedan multiplicados por u o (;,u) y por lo tanto se aumenta en uno el grado del polinomio o%n.; (orden % grado .;) 9osotros no utilizaremos el orden sino el grado pero es necesario definirlo por(ue ApenG! y algunos te$tos aun lo utilizan A modo de e*emplo, veamos el desarrollo para una curva de ? er grado (recordar (ue el superndice de u indica potencia)+ P&? % (;,u) P&- . u P;% (;,u) <(;,u) P&; . u P;;= . u <(;,u) P;; . u P-;= % (;,u)- <(;,u) P&& . u P;&= . -(;,u)u <(;,u) P;& . u P-&= . u- <(;,u) P-& . u P?&= % (;,u)? P&& . ?(;,u)-u P;& . ?(;,u)u- P-& . u? P?& 4sta es la forma en (ue se realiza el c'lculo recursivo de sucesivos puntos de la curva 4n general, la )i)liografa utiliza la notaci"n anterior, con el punto varia)le como una funci"n paramtrica de los puntos de control+ P % &n 8in Pi ; n !os coeficientes 8i son los polinomios de Bernstein, (ue 8&? 8?? pueden ser considerados como la )ase de un espacio donde el punto se identifica mediante n.; coordenadas (vectoriales y no escalares) (ue son los puntos de control 8;? 8-? 8in % Cin (;,u)n,i ui !os Cin son los nmeros com)inatorios+ la cantidad de formas en (ue se pueden elegir i elementos distintos de un con*unto de n elementos 3e definen mediante+ Ci n % 4sa f"rmula permite analizar las propiedades pero es & ; inadecuada para el c"mputo por la presencia de factoriales, en su lugar se utiliza el tri'ngulo de Pascal y se calculan en forma recursiva 4n la figura se representan los cuatro polinomios de 8ernstein de tercer grado Puede verse la simetra alrededor de u % & B, (ue podra deducirse de las simetras de los nmeros com)inatorios !a simetra implica (ue se puede revertir la lista de puntos de control y la curva resultar' igual -

Cada punto de control se corresponde con un polinomio de 8ernstein (ue acta entonces como funci"n de forma, aun(ue en este conte$to suelen denominarse blending functions (funciones mezcladoras) y, como siempre, miden la influencia de cada punto de control en cada punto de la curva 8 &n toma el valor ; en u % & mientras (ue 8 nn % ; en u % ; (en la figura, con polinomios de tercer grado, n%?), eso implica (ue la curva interpola (pasa por) los puntos de control inicial y final Adem's ningn 8 toma el valor unitario en ningn otro valor de u, por lo (ue P; y Pn son los nicos puntos de control interpolados 3e puede ver en las f"rmulas (ue la curva entera cam)ia al mover un solo punto de control, el punto varia)le P&n es afectado por todos los puntos Pi de control, esto se llama control global 4sta es una propiedad indesea)le en CAGD, donde siempre se pretende el control local de la curva, es decir (ue la curva vare s"lo en las cercanas del punto de control movido C's adelante veremos como se arregla esto con las 8,3plines Por ser una cadena de com)inaciones conve$as (com)inaciones afines con el par'metro restringido al intervalo <&,;=) el punto resultante estar' dentro o en el limite del convex-hull de los puntos de control De todos modos, mediante el )inomio de 9eDton, podemos ver f'cilmente (ue los polinomios de 8ernstein suman uno+ 8in % Cin (;,u)n,i ui % <(;,u) . u=n % ; Adem's, todos los trminos son positivos ( &) y (ueda entonces demostrado (ue el resultado, la curva de 8zier, es combinacin convexa de los puntos 3iendo una com)inaci"n afn las curvas de 8zier tienen invariancia afn Como ya 6emos visto, la transformaci"n afn mantiene las com)inaciones afines, por lo (ue para transformar la curva solo hay ue transformar sus puntos de control y construirla , en lugar de tener (ue transformar una mirada de puntos de la curva !nicidad+ Dada una curva polin"mica de grado n 6ay uno y solo un solo con*unto de n.; puntos de control (ue la definen como curva de 8zier !a demostraci"n ((ue no desarrollaremos) se 6ace por el a)surdo, y re(uiere una demostraci"n de la independencia lineal de los polinomios de 8ernstein, (ue es la de las series de potencias

Derivadas+
3iendo polin"micas, las curvas de 8zier tienen continuidad CE es decir (ue todas sus derivadas e$isten y son continuas (:ecordemos (ue Cn indica (ue las primeras n derivadas e$isten y son continuas, si n es cero indica (ue la funci"n es continua) Para calcular las derivadas )asta con derivar los polinomios de 8ernstein y se llega f'cilmente, a travs de la definici"n del nmero com)inatorio a+ 8in % n (8i,;n,; 8in,;) i <;, n,;= Con los casos especiales cuando el ndice da ,; o mayor (ue el grado+ 8&n % n 8&n,; E 8nn % n 8n,;n,; (o )ien, se considera+ 8,;F % 8F.;F % &) P % n &n (8i,;n,; 8in,;) Pi Alterando los su)ndices y utilizando los definidos nulos+ P % n &n 8i,;n,; Pi n &n 8in,; Pi % n &n,; 8in,;(Pi.;Pi) % n &n,; 8in,;Gi Hue puede verse como una curva de 8ezier de un grado menos (n,;) y definida mediante puntos de control (ue son n veces las diferencias entre puntos sucesivos !a propiedad del convex-hull sirve a(u para acotar las derivadas (variaciones) de la curva 4n particular, se conoce como variation diminishing o variaci"n disminuida al 6ec6o de (ue la curva no tiene m's oscilaciones (wiggles) (ue su polgono de control 9o daremos a(u la demostraci"n pero, en -D, cual(uier lnea (ue corta la curva en F puntos cortara F o m's veces al polgono de control !o mismo sucede en ?D con un plano (ue corta la curva y el polgono Atra forma de derivar, pero m's localmente, es recursiva Para una curva de ;er grado+ P&; % <(;,u) P&& . u P;&= % P;& I P&& % && Para una de segundo grado+ ?

P&-

% <(;,u) P&; . u P;;= % &; . (;,u) P&; . u P;; % % &; . (;,u) (P;& I P&&) . u (P-& I P;&) % % &; . <(;,u) P;& . u P-&= I <(;,u) P&& . u P;&= % &; . P;; I P&;

% -&; 3i continuamos con el mismo proceso o 6acemos inducci"n podemos ver (ue+ P&n % n &n,; % n (P;n,; I P&n,;) De donde podemos ver (ue el ltimo segmento de la construcci"n de De Castel*au es tangente a la curva 4n particular, para u%& y para u%; puede verse (ue la curva es tangente al polgono de control

"eparametrizacin#
Para poder representar curvas con un par'metro t variando en cual(uier intervalo real <t &, t;=, 6ace falta realizar una reparametrizacin afn con un par'metro u en <&, ;=+ t <t&, t;= t % (;,u)t& . ut; % t& . u(t;,t&) u % <&,;= ;,u % Para representar la curva, da lo mismo utilizar las e$presiones en u o en t !as derivadas cam)ian de forma sencilla+ % % % % (t;,t&)

Subdivisin#
!a secuencia de puntos P&i(uJ), para un dado uJ (&,;) fi*o, sirve como polgono de control para el tramo de la curva entre & y u J 4s decir (ue cual(uier punto de la curva sirve para dividirla en dos curvas de 8zier, definiendo los puntos de control intermedios por medio de los puntos calculados en el algoritmo de De Castel*au Kagamos la reparametrizaci"n de <&,uJ= con t <&,;=, es decir (ue si en la curva original tenemos un valor de u L uJ, en la nueva tendremos t % uMuJ P&P& P&& 4n el caso general se puede demostrar f'cilmente (ue P(u)%P(t(u)), pero para caso de las curvas de 6asta tercer grado se ve (ue los e$tremos y las derivadas e$tremas definen la curva !a curva original tena por derivada respecto de u en P&& al vector ?(P;&,P&&)E a6ora, respecto de t, es ?(P&;,P&&) Dado (ue t%uMuJ las derivadas se relacionan mediante uJdMdt%dMdu, y tam)in los vectores est'n relacionados segn (P&;,P&&)%uJ(P;&,P&&)E las derivadas son iguales 3iendo iguales los e$tremos del tramo y las derivadas, la curva coincide con la nueva Por simetra, lo mismo sucede para el tramo final 4n la figura de la derec6a se muestra (ue el convex-hull de cada tramo se reduce !a su)divisi"n recurrente es el mtodo natural para encontrar la intersecci"n de la curva con una lnea y para rasterizar la curva !as su)divisiones se realizan mientras el /anc6o0 del convex-hull sea mayor (ue un determinado valor, en un caso el error admisi)le y en el otro un p$el 4l anc6o del convex-hull se reduce cuadr'ticamente con el proceso de su)divisi"n
;

P&?

!nin de curvas de Bzier$ Continuidad %eomtrica y &aramtrica#


!as curvas de 8zier son adecuadas para representar tramos aislados de una curva li)re cual(uiera Para representar la curva entera, se puede 6acer una uni"n /suave0 de varias curvas de 8zier Consideraremos (ue la curva entera, una piecewise Bzier curve o curva de 8zier por tramos, tiene un nico par'metro (ue vara en forma continua entre tramos 4s decir (ue el par'metro inicial de cada tramo es igual al par'metro final del tramo anterior 4l con*unto (ar)itrario pero creciente) de estos par'metros lmite se conoce como knot vector o vector de nudos o nodos >

4l grado de suavidad depende de las necesidades Por e*emplo, para la visualizaci"n de una curva, normalmente )asta con (ue las partes tengan la misma recta tangente en el punto de uni"n, pero no es necesario (ue la derivada respecto del par'metro unificado sea continua (C ;), siendo vectores, solo )asta con (ue sean proporcionales 4sta necesidad define la continuidad geomtrica G; Kay continuidad geomtrica Gn cuando las primeras n derivadas son no,nulas y proporcionales, con un factor de proporcionalidad positivo Dic6o de otro modo+ las derivadas (vectores) e$isten y tienen la misma direcci"n y sentido aun(ue pueden tener distinta magnitud 4n general, la continuidad visual es G;, pero cuando lo (ue importa o lo (ue se ve es la /velocidad0 con (ue varia una funci"n (posici"n, color, normal, etc ) se re(uiere continuidad paramtrica C ; para (ue sea /visualmente placentero0 Para una animaci"n, si la c'mara se mueve con continuidad paramtrica C;, no se notar'n cam)ios )ruscos de velocidad de la c'mara Cuando se dise7a una autopista, por e*emplo, se re(uiere continuidad G- para (ue no 6aya cam)ios )ruscos de la curvatura y por lo tanto de la fuerza centrfuga Nolviendo a la uni"n de curvas de 8zier, para lograr la continuidad G ; s"lo se re(uiere (ue el segmento inicial del polgono de control de cada tramo sea colineal, contiguo y opuesto al segmento final de la curva anterior, independientemente del grado de cada tramo Para lograr continuidad C ; se re(uiere (ue los segmentos, multiplicados por el grado, sean iguales y opuestos a cada lado de la *untura (idnticas derivadas) !a continuidad C- entre curvas de 8zier es muc6o mas complicada y no puede lograrse en forma geomtricamente simple, por lo tanto esperemos 6asta las 8,splines para lograrla en forma sencilla

'nterpolacin con curvas de Bzier#


Podemos interpolar puntos mediante las splines de Catmull,:om, (ue son una sucesi"n de curvas de 8zier de tercer grado, unidas con continuidad paramtrica C; !as splines de Catmull,:om, interpolan una lista de m.; puntos Pi, a e$cepci"n de los puntos inicial P& y final Pm

4ntre cada par de puntos intermedios Pi y Pi.;O se define una curva de 8zier mediante puntos de control agregados (ue garanticen la continuidad paramtrica !a idea es 6acer (ue la derivada en cada punto sea la /velocidad media0 (ue se re(uiere para ir del punto anterior al posterior (Por eso no se interpolan los e$tremos) 4l par'metro se 6ace variar en forma continua entre & y m, tomando el valor i cuando la curva pasa por Pi, es decir (ue P(i)% Pi 4n los puntos dados 6acemos+ li % % % Para lograr esa derivada, u)icamos dos nuevos puntos de control+ Pi, y Pi. definidos mediante+ Pi , % Pi , Pi . % Pi . Ka)iendo asignado la misma velocidad media a am)os tramos, es posi)le (ue para un tramo muy corto la curva /no tenga tiempo de frenar0 ( overshoot) y genere un rulo 3e ve un e*emplo entre P > y PB en la figura Cuando 6ay tramos de distinta longitud (y por lo tanto, en general) es preferi)le utilizar un factor de correcci"n para la velocidad asignada en cada tramo ((ue suele ser la longitud del tramo) Kay varias formas de 6acerlo y varios nom)res para el resultado, el mas conocido es el de Aver6auser Como se puede ver f'cilmente, a(u los puntos tienen control local, el movimiento de un punto interpolante afecta a lo sumo a cuatro tramos de la curva B

Curvas de Bzier racionales#


!as curvas racionales son el resultado de la proyecci"n perspectiva de una curva con una dimensi"n m's !a curva se define en coordenadas 6omogneas :d.; 1$(u), y(u), z(u), D(u)2 pero se di)u*a en el espacio proyectivo Pd dividiendo por el polinomio D(u)E de a6 la denominaci"n de /racional0+ son cocientes de polinomios 4$isten dos *ustificaciones para utilizar curvas (y superficies) racionales !a primera es (ue las curvas as definidas poseen invariancia proyectiva :ecordemos (ue las curvas definidas mediante com)inaci"n afn tienen invariancia afn y por lo tanto lineal, y recordemos tam)in (ue las transformaciones proyectivas son transformaciones lineales en una dimensi"n superior Por lo tanto, una curva definida en una dimensi"n superior se puede transformar linealmente en :d.; mediante la transformaci"n (lineal) de sus puntos de control, para realizar la divisi"n perspectiva por D(u) al final del proceso !a otra *ustificaci"n (la principal, (uiz's) es la posi)ilidad de di)u*ar curvas c"nicas, la m's importante es la circunferencia, aun(ue para distintas aplicaciones tcnicas se re(uieren a veces arcos de 6ipr)ola o elipse
!as curvas c"nicas se o)tienen al cortar un cono por medio de un plano ((ue en general no pasa por el vrtice, ni es tangente a la superficie) Dependiendo del 'ngulo se o)tienen las distintas curvas 3i el plano es perpendicular al e*e se o)tiene una circunferencia, si comienza a inclinarse respecto del e*e se o)tienen elipses de e$centricidad cada vez mayor, 6asta (ue, al ser el plano paralelo a la generatriz, se o)tiene una par')ola, para una inclinaci"n mayor se o)tienen 6ipr)olas

!as curvas de 8zier de segundo grado (no,racionales) son siempre par')olas y no 6ay ninguna forma de (ue una curva de 8zier de cual(uier grado represente una c"nica diferente

!as curvas racionales se pueden definir sin dificultad en coordenadas 6omogneas+ PJ % 8in PiJ 4l pro)lema es (ue le estamos imponiendo al usuario una notaci"n complicada+ los puntos de control PiJ % 1Di$i, Diyi, Dizi, Di2 % 1DiPi, Di2 tienen cuatro dimensiones (ue el usuario no puede ver 5na interfaz grafica adecuada de)e pedir al usuario (ue defina los puntos de control (ue ve+ P i%1$i, yi, zi2 y esconder el car'cter 6omogneo mediante un nmero adicional Di (ue funciona como peso 4l punto varia)le de la curva proyectada en tres dimensiones es+ P % % Pi 4n la ecuaci"n se ve claramente el sentido de /peso0 adicional (ue se da en muc6os te$tos a la coordenada D y *ustifica la denominaci"n D por weight 4n particular podemos ver (ue las curvas de 8zier racionales siguen siendo com)inaci"n afn (y conve$a, si los pesos son positivos) de los puntos de control proyectados y posee las propiedades (ue se derivan de ello 3e puede 6acer una e$tensi"n del algoritmo de De Castel*au con pesos, proyectando el algoritmo entero desde el espacio 6omogneo al proyectivo+ PJi* % (;,u) PJi*,; . u PJi.;*,; Pi* % 4l denominador es el peso del punto Pi*+ Di* % 8i* (;,u)*,i ui Di P

A diferencia del caso polin"mico (no,racional) a(u s 6ay peligro de divisi"n por cero si se admiten pesos nulos o negativos 9o se puede utilizar el mismo argumento de proyecci"n con las derivadas, por(ue la derivada de un cociente implica una regla de derivaci"n complicada+ !a tangente a una curva proyectada suele no ser la proyecci"n de la tangente a la curva original Pero para este caso, se puede demostrar, usando la regla del cociente (ue+ P&n % n (P;n,; , P&n,;) 4$presi"n (ue en s no interesa, pero sirve para mostrar (ue la recta tangente a la curva proyectada s es, en este caso, la proyecci"n de la recta tangente a la curva 4n particular, lo (ue importa es (ue las tangentes inicial y final est'n definidas, tam)in en el caso racional, por los segmentos inicial y final del polgono de control P&n(&) % n (P; , P&) !a e$cepci"n es cuando el denominador resulta nulo, donde 6a)r' (ue 6acer un an'lisis de lmites Dados los puntos y las tangentes inicial y final de una curva de 8zier de segundo grado, el punto de control central estar' en la intersecci"n de las tangentes Para una curva no racional ya est' todo dic6o, pero para una curva racional an se puede modificar la curva mediante los pesos Kay muc6as formas de construir arcos de circunferencia (-D) con curvas racionales de 8zier de segundo o mayor grado

!a notaci"n en las figuras es distinta por(ue fueron copiadas de distintas fuentes, pero el significado es o)vio !a primera imagen muestra un mtodo general, la segunda est' particularizada para Q de circunferencia y la tercera para media circunferencia 4n la tercera se puede ver (ue siendo nulo el peso del punto central no se cumple la condici"n del convex-hull y las tangentes no se unen en el punto proyectado (s en el ideal) 4n ese caso, si se asigna peso ,; al punto central se o)tiene la otra mitad de la circunferencia 4n todos los casos, con radio ;, se puede demostrar f'cilmente (ue $ -(u).y-(u)%; es decir (ue efectivamente dan arcos de circunferencia

B(Splines
5na spline es simplemente una curva continua o)tenida mediante uni"n suave de tramos curvos simples Sa vimos un e*emplo con las splines de Catmull,:om, (ue son uni"n C; de curvas de 8zier !a 8 de 8,splines se refiere a /)ase0+ se utiliza una )ase, en general polin"mica, a diferencia de los intentos originales de simular una varilla fle$ionada mediante /puntos de control0, usando las ecuaciones de la elasticidad !as 8,splines ganaron la )atalla so)re todos los otros tipos definidos (Tmuc6osU) y 6oy la variante+ 9on,5niform :ational 8,3pline o 95:83 es la m's utilizada 3e trata de curvas no,interpolantes, en general c)icas, unidas con continuidad C- y cuyos puntos de control poseen control local Pueden pensarse como un mtodo de uni"n de curvas de 8zier de grado n con continuidad Cn,;, pero a6orr'ndonos muc6os puntos de control innecesarios como los (ue se introdu*eron al interpolar con curvas de 8ezier 9ormalmente, las 8,splines y las 95:83 se definen mediante las blending functions (como los polinomios de 8ernstein para las curvas de 8ezier) usando el algoritmo recursivo de Co$,De 8oor para calcularlas De ese modo, se dan una serie de recetas alge)raicas, sin contenido geomtrico 4$isten muc6as formas de a)ordar el tema 9osotros las estudiaremos mediante la forma polar y blossoming, lo (ue implica un cam)io de notaci"n (ue parece )astante complicado, pero finalmente 6ace muc6o m's f'cil /entender0 el tema Para programar, en cam)io, cual(uier receta es adecuada

Blossoming y )orma &olar


!a forma polar no es m's (ue una e$tra7a forma de notaci"n para los polinomios Definamos una funci"n f multiafn y simtrica, de n par'metros Para no perdernos, fi*emos en tres el nmero de par'metros+ Por simtrica entendemos (ue no cam)ia si se permutan li)remente los par'metros+ f (a, ), c) % f (a, c, )) % f (c, a, )) % V Por multiafn entendemos (ue si todos los par'metros son iguales e$cepto uno, se puede interpolar linealmente entre los dos valores del par'metro distinto+ f (a, (;,u)).uc, d) % (;,u) f (a, ), d) . u f (a, c, d) 4n la ultima ecuaci"n, u es un par'metro entre & y ; !a ecuaci"n se lee as+ f de a, un nmero entre ) y c, dE es igual a la interpolaci"n lineal de las (conocidas) f de a, ), d y f de a, c, d 3e puede pensar f como una rutina (ue devuelve un real $ si le damos n reales 1a,),cV2, los reales de entrada significan lo mismo+ f (?,;,B) devuelve lo mismo (ue f (B,?,;) !a rutina s"lo puede calcular el resultado interpolando entre dos datos o resultados previosE e* + si conozco f (?,;,?) y f (?,;,W) y (uiero calcular f (?,;,B), de)o interpolar el B entre ? y W+ f (?,;,B) % >MP f (?,;,?) . -MP f (?,;,W) (W,?%P, de ? a B 6ay -, de B a W 6ay >) !a f"rmula general, para interpolar u <ui, ui.;= es+ f (a,),c,V,u) % !os datos de partida son valores conocidos de fE a partir de ellos se pueden calcular sucesivos valores mediante mltiples interpolaciones lineales, por lo (ue el resultado es un polinomio en u 4n nuestro caso el resultado no es un solo valor $ sino varios 1$,y,z(,D)2, (ue reci)en el mismo tratamiento en simultaneoE es un punto interpolado 4l punto se o)tiene mediante una sucesi"n de X

com)inaciones afines de los puntos de control dados, es decir (ue es una com)inaci"n afn de los puntos dato, cuyas funciones de forma son polinomios en funci"n de un solo par'metro varia)le u, por lo tanto define una curva unidimensional 9o desarrollaremos la matem'tica, solo vamos a usar la notaci"n y las propiedades como una receta+ P(u, u, u) es el punto en la curva a calcular 1a,),c,dV2 es un con*unto dado de nmeros (valores del par'metro u) tal (ue a Y ) Y c Y d Y V (ue llamamos knot-vector o vector de nudos o nodos (notar (ue pueden repetirse) Partimos de los puntos de control conocidos (ue llamaremos P(a, ), c), P(), c, d), P(c, d, e)V Blossoming es un mtodo de c'lculo por medio de la interpolaci"n lineal recursiva de los puntos de control dados 4l algoritmo de De Castel*au es un e*emplo 4l siguiente es(uema muestra la marc6a del c'lculo necesario para o)tener un punto de una curva de tercer grado mediante blossoming: P(a,),c) P(),c,d) P(c,d,e) P(d,e,f) P(),c,d) P(c,d,u) P(c,d,e) P(d,u,u)

P(),c,u)

P(c,d,u)

P(d,e,u)

P(c,u,u) P(),c,u)

P(u,u,u)

P(c,c,c)

P(c,u,u)

P(d,u,u)

P(d,d,d) P(d,e,u) P&

P(u,u,u)

P(a,),c)

P(d,e,f)

4n este e*emplo tenemos cuatro puntos de control y un vector de nudos 1a,),c,d,e,f2 3upongamos (ue (ueremos calcular el punto de la curva para un dado u fi*o entre c y d 4n el primer nivel se interpola un punto en cada segmento, por e*emplo para calcular P(d,e,u) se utiliza la formula de arri)a Dado (ue am)os puntos tienen d y e, el punto se interpola con u entre c y f+ P(d,e,u) % Del mismo modo, en cada nivel, se interpola con u entre dos puntos previos (ue tienen dos par'metros iguales y uno distinto, (ue para un punto esta por de)a*o de u y para el otro por encima 4l c'lculo termina en P(u,u,u) (ue es el punto )uscado de la curva 4l c'lculo del e*emplo 6ace una interpolaci"n lineal entre dos puntos dadosE es un polinomio lineal en u Para el segundo nivel la interpolaci"n de los puntos interpolados ser' un polinomio cuadr'tico y para el tercero resulta c)ico 9otar (ue, si )ien el rango de par'metros es <a, f=, s"lo 6ay puntos de la curva en <c, d=, no se puede definir la curva (sin e$trapolar) fuera de ese rango pues la ultima interpolaci"n es entre esos dos valores 9otar adem's (ue la curva s depende de todos los puntos con par'metros entre a y f (ue contienen c o d, los valores e$tra definen /como arranca y como termina0 la curva es decir, las condiciones de )orde 4l es(uema anterior es para un tramo de la curva (u <c,d=) pero se puede e$tender tanto como se (uiera Agregando un punto de control m's (g) se o)tiene un tramo m's <d,e= y as sucesivamente !a /profundidad0 del es(uema (de tercer grado) se mantiene siempre igual (tres niveles de interpolaci"n) Para calcular un punto en una curva de tercer grado+ P(u,u,u), cuando 6ay mas de cuatro puntos de control, se toman los cuatro (ue contienen los valores (ue encierran a u (c y d en este caso) 5n caso particular de spline es una curva de 8zier 3e caracteriza por el modo de repetici"n de los knots, en una de tercer grado el vector es 1&,&,&,;,;,;2 (n repetidos y n repetidos pero pueden ser otros nmeros) y los puntos de control ser'n P(&,&,&), P(&,&,;), P(&,;,;) y P(;,;,;) Calculemos un punto cual(uiera de par'metro u <&,;=+ W

P(&,&,;)

P(&,;,u) P(&,;,;) P(;,u,u)

P(&,u,u) P(&,&,u)

P(u,u,u)

P(;,;,u)

P(&,&,&)

P(;,;,;)

P(&,&,u) % (;,u) P(&,&,&) . u P(&,&,;) P(&,u,;) % (;,u) P(&,&,;) . u P(&,;,;) P(u,;,;) % (;,u) P(&,;,;) . u P(;,;,;) P(&,u,u) % (;,u) P(&,&,u) . u P(&,u,;) P(u,u,;) % (;,u) P(&,u,;) . u P(u,;,;) P(u,u,u) % (;,u) P(&,u,u) . u P(u,u,;)

Como vemos es e$actamente el algoritmo de De Castel*au !a su)divisi"n ((ue vimos para curvas de 8zier) consiste en dividir la curva en dos partes, utilizando para ello los puntos de control recin calculados+ 1P(&,&,&), P(&,&,u), P(&,u,u), P(u,u,u)2 1P(u,u,u), P(u,u,;), P(u,;,;), P(;,;,;)2 4n las figuras (ue siguen se muestra, por fin, una 8,spline de tercer grado definida por el knot-vector 1;,-,?,>,B,P,R,X2 y los seis puntos de control 1P(;,-,?), P(-,?,>), P(?,>,B), P(>,B,P) P(B,P,R), P(P,R,X)2 4l punto varia)le de la curva es P(t,t,t) con t <?,P=

!a curva consta de tres segmentos con el par'metro variando en <?,>=, <>,B= y <B,P= respectivamente !os puntos de control del primer tramo (tomado como curva aislada) son+ 1P(?,?,?), P(?,?,>), P(?,>,>), P(>,>,>)2, es decir (ue es una curva de 8ezier Zodos los tramos de una 8,spline son curvas de 8ezier 4l primer punto P(?,?,?) se o)tiene por interpolaci"n conve$a de P(?,-,?) y P(?,?,>), (ue no vienen dados Para o)tener P(?,-,?) se interpola entre P(;,-,?) y P(-,?,>) (se interpola el ? entre ; y >) 4l otro punto, P(?,?,>) se encuentra de igual manera, interpolando entre P(-,?,>) y P(?,>,B) 4*emplo de c'lculo+ A)tenemos el punto P(?,-,?) interpolando entre P(;,-,?) y P(-,?,>) Dado (ue los dos nmeros - y ? son iguales, el par'metro varia)le es t%?, entre ti%; y ti.;% >+ P(?,-,?) % % Puede deducirse de la forma de interpolaci"n, (ue un tramo de la curva <t i, ti.;= est' influenciado solamente por los puntos de control (ue tienen a t i o a ti.; como par'metros en la forma polar Por e*emplo el tramo <>,B= est' influenciado por los puntos de control (ue van desde P(-,?,>) a P(B,P,R), el primero (ue tiene al > es P(-,?,>) y el ltimo (ue tiene al B es P(B,P,R)

;&

*not(+ector#
4l vector de nudos es una secuencia no decreciente con los valores del par'metro en los puntos de uni"n 3i la secuencia est' e(uiespaciada (Fi.; , Fi % cte ), la curva se denomina spline uniforme y, en caso contrario, no,uniforme !a secuencia puede tener valores repetidos (ue se conocen como nudos mltiples o multiple knots 4l vector de nudos se impone al definir la curva 4n los programas de CAD suele ser transparente al usuario (uien solamente define los puntos de controlE el programa suele poner una secuencia uniforme de knots en forma autom'tica, o )ien puede espaciarlos en proporci"n a las distancias entre los puntos de control (recordar el overshooting en la interpolaci"n con splines) 4l usuario suele intervenir solamente en los programas de animaci"n o cuando de)e controlar la velocidad del recorrido por la curva, las splines sirven a6 para definir las trayectorias de los o)*etos y las c'maras !os puntos li)res al principio y al final son para imponer las condiciones de )orde+ punto y derivadas de partida y llegada 9ormalmente se suelen imponer condiciones de borde de Bzier+ (ue la curva interpole los puntos e$tremos y sea tangente a los segmentos e$tremos Para ello, en lugar de los puntos li)res al principio y al final se utilizan los puntos de control de inicio del primer arco de 8zier y final del ltimo Por e*emplo, al inicio de la curva en la figura de arri)a, en lugar de P(;,-,?) y P(-,?,>) se usan P(?,?,?) y P(?,?,>) !a secuencia de knots sera as+ 1?,?,?,>,B,P,R,X2 Kaciendo eso tam)in al final nos (ueda+ 1?,?,?,>,B,P,P,P2 y los puntos de control 1P(?,?,?), P(?,?,>), P(?,>,B), P(>,B,P), P(B,P,P), P(P,P,P)2 3e puede definir tam)in la curvatura de partida o llegada (segunda derivada)E un re(uerimiento )astante inusual, pero (ue 6ace (ue el softDare (ApenG!) y los li)ros tengan un knot m's al principio y otro al final !a insercin de knots se utiliza para /me*orar0 una curva (ue se define primero en forma grosera y se va refinando secuencialmente 6asta adoptar la forma deseada 4n el e*emplo de la figura, se parte de una 8,spline y se inserta un nuevo nodo intermedio de valor - !a curva de 8zier del intervalo <;,?= se su)dividi" en dos al insertar un nuevo knot. 4l polgono de control se reemplaza localmente con uno m's /refinado0 Para un valor ar)itrario del par'metro 6a)r' (ue 6acer las cuentas de la interpolaci"n lineal !os nuevos puntos de control pueden luego moverse li)remente para rea*ustar la curva 4l algoritmo de De Boor se utiliza para calcular el punto varia)le de la curva y trazarla Consiste, segn este es(uema, en encontrar para un dado valor del par'metro t el punto P(t,t,t) y el mtodo e(uivale a insertar n veces el nudo t Para la curva del e*emplo anterior, insertando tres veces el nudo en - se o)tiene el punto p(-,-,-) de la curva 4ste mismo truco es el (ue se utiliza para la subdivisin+ se calcula un punto de la curva y los necesarios puntos de control al final del primer tramo y al principio del siguiente
9ota+ !a inserci"n de un nuevo nudo es para darle al usuario un nuevo punto para mover y as a*ustar la curvaE pero el nuevo punto de)e insertarse de modo (ue no modifi(ue la forma actual de la curva

Derivadas#
!as derivadas salen tediosa pero f'cilmente, se 6ace lo mismo (ue en las curvas de 8zier pero all el incremento del par'metro era uno A(u si u <ui, ui.;=+ P(u,u,u) % n (:ecordarlo como /n PMu0) ;;

9o lo demostraremos pero es f'cil de ver y muy importante conocer (ue por cada repeticin de un nudo se pierde un grado de continuidad de la curva en el punto correspondiente 4ste asunto es muy importante pues es la tcnica (ue se utiliza para definir puntos de (uie)re en el interior de una spline Como se e$plica en la nota anterior, al insertar el nudo la curva no cam)ia, pero al mover uno de los nuevos puntos de control se nota la prdida de suavidad Por e*emplo, en el algoritmo de De 8oor se introdu*eron knots repetidos sin modificar la continuidad de la curva Pero si el usuario mueve el punto P(t,t,t) arrastra la curva con continuidad C& 4n la figura anterior, si se mueve el punto P(-,-,-), la tangente a un lado ser' el segmento P(;,-,-,),P(-,-,-) y al otro lado ser' P(-,-,-),P(-,-,?), como se puede ver ya no ser'n coincidentes Para las 95"83 (racionales) las derivadas no son sencillas, por la regla del cocienteE pero por ser el mtodo de construcci"n igual al de 8ezier, el resultado es similar y conceptualmente idntico+ en la medida en (ue no 6aya pesos nulos ni negativos las tangentes se proyectan

Superfices
4$isten muc6as variantes tiles para construir superficies, la m's sencilla de comprender es el producto cartesiano o tensorial de curvas de 8zier o de 95:83 Para definir una superficie como un producto cartesiano, de)emos asumirla como una funci"n de dos par'metros (u,v)+ P(u,v) % i * 8in(u) 8*m(v) Pi,* % i 8in (* 8*m Pi,*) % * 8*m (i8in Pi,*) Para un dado valor del par'metro v fi*o se o)tiene una curva (isoparamtrica) con u varia)le, y lo mismo sucede si se fi*a u !as alternativas e(uivalentes de la derec6a indican (ue la superficie puede pensarse como com)inaci"n de curvas, en el mismo sentido en (ue las curvas son com)inaciones de puntos de control !os puntos de control de la superficie forman una grilla rectangular de (n.;) x (m.;) puntos (ue pueden u)icarse li)remente en el espacio, pero est'n /interconectados0 como en una cuadrcula Para una superficie 95:83, de)er' definirse adem's un vector de nodos en cada direcci"n 3i en una direcci"n las splines son rectas, se definen s"lo los puntos de control de las dos curvas e$tremas, en ese caso tendremos una superficie reglada 3i am)as son rectas es )ilineal 3i un con*unto de curvas son crculos coa$iales, es decir (ue los puntos de control de una curva /generatriz0 se copian en un array circular alrededor de un e*e, tendremos una superficie de revoluci"n As 6ay varios casos especiales y tiles 4n las superficies, las condiciones de )orde son muc6o m's importantes (ue para las lneas, por(ue al renderizar se ver'n efectos lumnicos indesea)les si la normal no pasa suavemente de un tramo a otro !a tetera, (ue tantas veces 6emos visto (Utah teapot), est' construida por medio de patches o parc6es de superficies de 8ezier

!a uni"n del pico a la tetera no est' realizada /correctamente0, el pico atraviesa el cuerpo 5na soluci"n a esto son las trimmed ,!"BS, (ue permiten recortar una superficie 95:83 por medio de splines definidas en el espacio de par-metros+ 5na superficie 95:83 est' definida por medio de un arreglo rectangular de puntos de control en el espacio del di)u*o (o el 6omogneo) y dos knot-vectors (ue definen el rango en el espacio de los par'metros 4l espacio de par'metros se representa en el plano (u,v) y es un rect'ngulo limitado por los knots e$tremos en cada direcci"n 4s all donde se definen una o mas curvas planas (ue recortan el e$terior y 6uecos en el rect'ngulo original !a superficie se renderiza s"lo entre los lmites (ue definen esas curvas ;-

4n la figura de arri)a se muestra un e*emplo de recorte e$terior y en la de a)a*o est' el e*emplo del :ed,8ooF (ue s"lo tiene un recorte interior

Como puede verse se 6ace necesario renderizar una triangulaci"n pues algunos cuadril'teros (uedan recortados Zam)in puede verse la psima calidad de la triangulaci"n (ue provee G!5 y (ue se nota en los refle*os en la parte inferior Kay muc6os tipos de superficies, pero casi todos pueden traducirse o representarse como 95:83, a veces recortadas De 6ec6o la mayora de los pa(uetes de softDare (al menos los m's tcnicos) transforman cual(uier otra posi)ilidad en una 95:83 para el intercam)io de arc6ivos Kay tam)in superficies de 8zier triangulares en vez de cuadril'teras Pero si 6ay algn candidato al reemplazo de las 95:83 estas son las subdivision surfaces, (ue tienen una interfaz de usuario m's razona)le, no re(uieren del molesto e incomprendido vector de nudos, y admiten cual(uier distri)uci"n de puntos de control, no necesariamente una grilla rectangular !a idea general de las subdivision surfaces es partir de una forma muy )asta para refinarla en un proceso recursivo, cuyo lmite es la superficie )uscada Kay )'sicamente dos mtodos para construirlas Doo,3a)in y Catmull,ClarF

4n el mtodo de Doo,3a)in, en cada paso une el centro (promedio de vertices) de cada cara con cada vrtice de la cara, luego se pone un punto en el centro de cada uno de los segmentos nuevos !a superficie original se reemplaza, en cada paso, por la (ue forman los nuevos puntos :esulta una generalizaci"n de las superficies de 8zier de -[ grado

;?

4l proceso de Catmull,ClarF, es ligeramente distinto, conserva puntos originales pero los mueve 4s una generalizaci"n de las superficies de tercer grado con continuidad CPara cada cara ponemos un punto en el centroide Para cada arista tam)in 4l punto de la arista se mueve al promedio entre el punto en (ue esta)a y los dos centroides de las caras adyacentes en esa arista 4l vrtice tam)in se mueve pero es m's complicado+ 3i llamamos P al punto original, # al promedio de los puntos centrales de las n caras (ue tienen a P como vrtice, : al promedio de los puntos medios de segmentos conectados con PE la nueva posici"n del punto P ser'+ P\%

5na )uena parte del softDare (ue se esta desarrollando y utilizando en este momento, para CAD y para la creaci"n de caracteres para animaciones, utiliza este algoritmo para modelar superficies li)res 4l mtodo (ue se utilice depende fuertemente de la aplicaci"n

9estor Calvo Computaci"n Gr'fica #@CK,59!

;>

You might also like