You are on page 1of 8

CURVAS DE BEZIER

PRESENTADO A: PRESENTADO POR: Cdigo:

ANALISIS MATEMATICO

Fecha Presentacin: 21 Febrero de 2011

Bucaramanga

CURVAS DE BEZIER
1. Marco Terico La idea de unir sucesivamente arcos polinomiales parte del trabajo de dos ingenieros que ejercieron su actividad en las fbricas de automviles Citron y Renault. Se trata de P. de Casteljan y Pierre Bzier, quienes a finales de los aos 50 y principios de los 60 desarrollaron sistemas de modelado (para aplicacin al diseo de carroceras) totalmente similares, aunque el trabajo del primero de ellos quedo como documento interno, mientras que el sistema UNISURF de Renault (implementado por Bzier) fue ampliamente publicado. De aqu que el tipo de curvas y superficies que ambos estudiaron lleve hoy en da el nombre de Bzier. La idea en una curva de Bzier esta en considerar una base especial del espacio del polinomio que permite una excelente interpretacin geomtrica de los coeficientes de un polinomio cuando son expresados en funcin de dicha base. Esta es la denominada Base de Bernstein, que fue descrita en 1912 por S. Bernstein, quien lo empleo en el contexto de la aproximacin uniforme a funciones continuas Polinomios de Bernstein Los polinomios de Bernstein o polinomios en la base de Bernstein son una clase particular de polinomios en el campo de los nmeros reales, que son utilizados dentro del mbito del anlisis numrico.

Donde

Son los coeficientes binomicos

Se denomina Polinomio de Bernstein y generalmente solo se define para x  que es donde se manifiestan sus importantes propiedades

En el caso de un polinomio de grado 2 la base en [0,1] est compuesta de:

Un polinomio expresado en esta base tendra entonces la forma:

Construccincurvas de Bzier Una curva de Bzier est formada por varios segmentos, pueden ser curvos o rectos. La curva puede ser abierta o cerrada. ste es un ejemplo de curva de Bzier, sobre el que se explicarn los distintos conceptos: Puntos de apoyo Son los puntos extremos de los segmentos. Por ellos pasa la curva y siempre hay que definirlos. En general, cuando se crean curvas de Bzier se procura que haya la menor cantidad posible de puntos de apoyo. Puntos de control Son los puntos a los que intenta acercarse la curva, aqullos que definen su curvatura. Siempre hay que definirlos. La curvatura de cada segmento viene definido por un punto de control, dos o ninguno. Lneas de control Unen los puntos de apoyo con los puntos de control. Son meras referencias para ayudar en la creacin de las curvas, luego no aparecen.

Para iniciar en el tema de curvas de Bzier es necesario considerar cuatro puntos Po, P1, P2, P3 que forman el polgono de apoyo. La curva iniciar en el punto Po y finalizar en elpunto P3; su trayectoria para ir del punto de inicio al punto final depende de laposicin de los puntos P1y P2. Como es de notar, en todos los casos el grado nde la curva es menor en uno que el nmero de puntos del polgono de apoyo. Los puntos del polgono deapoyo quedan identificados de la siguiente manera Po =P0,3 P1= P1,3 P2 =P2,3 P3=P3,3

Sea t un parmetro valuado a lo largo de la curva, cuyos valores posiblesson: 0 t 1, es decir, los puntos sobre la curva se definirn de acuerdo con elparmetro t, en la curva B(t), y se cumple que en los puntos extremos de la curvaB(0) = P0,3y B(1) = P3,3. La curva de Bzier de grado n puede ser generalizada de la siguiente manera. Dados los puntos P0, P1,..., Pn, la curva de Bzier es del tipo:

De una manera ms general:

Donde las polinomiales

2. Ejemplos curvas de Bzier con polinomio aplicado Estos ejemplos se encuentran en una hoja anexa al final del trabajo ya que son aplicados directamente desde los puntos hacia el polinomio 3. Cdigo en matlab para las curvas de Bzier
function bezier(P) plot(30,30) axis([-80 80 -90 90]) holdon n = length(P); if n==0 xy =[]; n=0; text(5,26.5,'El botn izquierdo toma los puntos') text(5,23.1,'El botn derecho toma el ltimo punto') but=1; while but==1 [xi,yi,but]=ginput(1); plot(xi,yi,'r+') n=n+1; x(n)=xi; y(n)=yi; xy(:,n)=[xi;yi]; end PoligonoDeApoyo=xy' else PoligonoDeApoyo= P for i=1:n x(i)=P(i,1); y(i)=P(i,2); end end s=n-1; for i=0:s coef(i+1)=(FACTORIAL(s)/(FACTORIAL(s-i)*FACTORIAL(i))); end if mod(n,2) == 0. m=1; else m=0; end b=zeros (n); for i=1:n u=0; for j=1:s+1 b(i,j)= coef(i)*(FACTORIAL(s)/(FACTORIAL(s-u)*FACTORIAL(u)))*(1)^(i+j+m); u=u+1; end s=s-1; end

t=0:0.01:1; for i=1:101 for j=1:n vt(i,j)=t(i)^(n-j); end end for t=1:101 Pxt(t)=x*b*vt(t,1:n)'; Pyt(t)=y*b*vt(t,1:n)'; end plot(x,y,Pxt,Pyt,'r')

Es importante mencionar que este codigo no es hecho por mi, fue sacado de la pagina http://www.des_ia.umich.mx/~fvelasco/investigacion/bezier.pdf 4. Aplicacin Para mi propia aplicacin decid realizar un dibujo, basndome en su forma original, los puntos fueron tomados en base a mi observacin, tratando siempre que fuera lo mas preciso posible, se aqu se puede observar que entre mas puntos se le de a la forma que se quiere mostrar mas preciso ser, en especial en las partes donde el dibujo debe ser recto, ya que, al tomar pocos puntos tiende a tomar una forma curva y no una recta. Es importante mencionar que aunque el dibujo se logro lo mas parecido posible de acuerdo a la imagen original, hizo falta el color, esto debido a que las partes al estar algo entrelazadas entre ellas el color se confunda y no se lograba una imagen bien presentada, por eso prefer dejarla solo para rellenar. Pero esto puede ser una aplicacin para una actividad infantil para rellenar el dibujo, siempre se le puede encontrar un propsito

Esta es la imagen original

Esta es la imagen lograba con la funcin de bezier en matlab 5. Conclusiones  Analizando la utilidad de bezier puedo concluir que es una herramienta muy importante a la hora de tratar con grficos y con puntos, ya que al querer hacer un dibujo buscamos la precisin mas grande y bezier es una herramienta que se presta para esto  Si se quiere obtener una precisin grande, entre mas puntos se manejen mas aproximado ser el resultado al dibujo original  Puedo verle la utilidad que origino que Bezier y Casteljan buscaran una forma de hacer precisos las figuras que queran soldar en los carros, ya que es mas fcil, poner a predecir en la curva el comportamiento de una serie de puntos

 Al hacerle una rpida comparacin con spline, puedo decir que es mas preciso y mas til bezier, ya que spline solo maneja hasta grado 3 y las curvas de bezier permite llevar el polinomio deseado, y como ya se dijo que entre mas grado sea el polinomio mas preciso ser.  Del polinomio de bezier se puede decir que siempre es de un grado menor que el numero de puntos utilizado y que la unin de puntos se da especialmente entre el primer y el ultimo punto

Ojo para que funcione utilizamos: un vector P vacio de la siguiente forma P[]; bezier(P)

You might also like