Curvas de Bezier

Por Liane R. Maggioni Silva Antunes

 

 

Sum�rio

 

1 � Introdu��o

2 � Defini��es preliminares

����������� 2.1 � Representa��es da curva

����������� 2.2 � Curvas c�bicas param�tricas

����������� 2.3 � Continuidade geom�trica e continuidade param�trica

3 � Curvas de Bezier

����������� 3.1 � Defini��o

����������� 3.2 � Propriedades

4 � Aplica��es da curva

����������� 4.1 � Subdivis�o das curvas de Bezier

����������� 4.2 � Compara��escom outras curvasc�bicas

����������� 4.3 -Softwares que utilizam a curva de Bezier e Sites relacionados

5 - Bibliografia

 

 

1 - Introdu��o

 

����������� O conceito matem�tico da Curva de Bezier foi originalmente desenvolvido pelo franc�s Pierre Bezier para a ind�stria automobil�stica, nos anos 60. Tratava-se de uma nova ferramenta de desenho baseada em uma variedade muito vers�til de curvas matem�ticas, perfeitas para desenhar o contorno suave dos carros modernos. Tais constru��es matem�ticas tinham como m�rito o fato de proporcionarem uma defini��o f�cil das curvas de maneira que os computadores pudessem entend�-las.

����������� Posteriormente, seu conceito se tornou a base de todo o modelo gr�fico do Adobe PostScript, sendo hoje largamente utilizado na maioria dos softwares de computa��o gr�fica. Desta forma, tais curvas se tornaram familiares para qualquer usu�rio de programas com �vector drawing�.

����������� A curva de Bezier emprega no m�nimo 3 pontos para sua defini��o, podendo chegar a �n� pontos de controle. Entretanto,sua forma mais comumente utilizada � a de terceira ordem, ou seja a curva c�bica de Bezier, que � definida por quatro pontos de controle. Tais pontos s�o: 2 �endpoints� (tamb�m conhecidos como pontos �ncoras) e dois �control points� (pontos de controle) que n�o passam pela curva, mas definem sua forma. A linha que une um ponto �ncora ao seu ponto de controle corresponde � reta tangente a curva no ponto �ncora, e, por isso, � ela que determina a declividade (ou derivada) da curva neste ponto. Esta forma de constru��o est� ilustrada na figura a seguir.

 

 


 

 


Essa defini��o de como � gerada confere � curva de Bezier uma grande versatilidade, permitindo que ela possa se comportar, num dado momento, de maneira suave, homog�nea, mas tamb�m possa adquirir formas mais bruscas, e at� mesmo apresentar fraturas. Tanto elapode apresentar uma ou duas curvaturas, como pode at� formar �loops�. Al�m disso, quando seus �control points� coincidem com os �end points�, ela passa a representar uma linha reta. A figura abaixo ilustra as in�meras possibilidades oferecidas pela curva de Bezier

�����������


 

 


Uma outra caracter�stica da curva de Bezier � sua capacidade � sua capacidade de se aproximar de outros tipos de curvas. Por exemplo, embora n�o se possa desenhar um c�rculo exato com ela, pode-se tra�ar um quarto de c�rculo (um arco de 90�) com uma margem de erro muito pequena.

����������� Da mesma forma, manipulando os valores de origem, destino e control points � poss�vel criar curvas que se aproximam de c�nicas como par�bolas, hip�rboles, etc.

����������� Antes que se apresentem as defini��es geom�tricas e matem�ticas da curva de Bezierpropriamente, conv�m que se fa�a uma revis�o em alguns conceitos b�sicos, tais como curvas param�tricas, continuidade geom�trica e param�trica, etc., o que faremos a seguir.

 

 

������������������

2. Defini��es Preliminares

 

2.1.         Representa��esda Curva

 

 

�������� Existem basicamente 3 formas de representa��o para curvas: a expl�cita, aimpl�cita e a param�trica.

 

Na forma expl�cita, tamb�m conhecida como funcional, as vari�veis y e z s�o fun��es de x (para 3D), sendo representadas por duas equa��es:

�����������

����������� y = f(x) , z = g(x)�����������������

 

����������� Neste tipo de formula��o s� existeum valor de y para cada valor de x (o mesmo acontecendo como valor de z), o que inviabilizao uso de tal forma de representa��o parao caso de curvas fechadas, onde para cada valor de x possam existir mais de um valor para y(e/ou z). Al�m disso, para o caso de se descrever uma vers�o rotacionada da curva, ter�amos um enorme trabalho matem�tico e seria necess�rio se subdividir a curva em v�rios segmentos.

 

 

����������� Atrav�s da representa��o impl�cita pode-se modelar curvas como sendo solu��es de equa��esda seguinteforma:

 

����������� f(x,y,z) = 0

 

����������� Essa forma de representa��o tamb�m apresenta algumas limita��es em determinados casos, especialmente na situa��o em que dois segmentos curvos se encontrame h� dificuldade em se estabelecer se a dire��o de suas tangentes concordam em seu�� ponto de encontro.

 

����������� Tanto na forma expl�cita quanto na forma impl�cita de representa��o de uma curva, os elementos dependem dos eixos, portanto a escolha do sistema de coordenadas pode afetar suas propriedades.

����������� Em resumo,essas duas formas matem�ticas permitem determinar rapidamente se um ponto pertence a uma curva, ou ainda em que lado da curva se localiza um ponto, mas se mostram limitadas para expressar muitas das formas requeridas para modelagem geom�trica de uma curva com fins computacionais.

 

A representa��o param�trica das curvas expressa o valor de cada vari�velespacial x, y e z em fun��ode uma vari�vel independente t, que � chamada depar�metro.

����������� De fato, tais formas de representa��o superam os problemas das formas de representa��o expl�cita e impl�cita, oferecem uma variedade de outras atra��es, e atendem de forma bem mais satisfat�ria � maioria das aplica��es de modelagem que independem de qualquer sistema de coordenadas.

 

����������� Na forma param�trica, em tr�s dimens�es se t�m 3 fun��es expl�citas da forma:

 

����������� x = x(t)

����������� y = y(t)

����������� z = z(t) , onde os pontos s�o desenhados sobre a curva para cada varia��o do par�metro t entre 0 e 1.

�����������������������

����������� A grande vantagem desta forma de representa��o �de que a forma aproximada da curva passa a ser definida como uma curva polinomial, o que, para efeitos de computa��o gr�fica, pode melhorar a visualiza��o de curvas mais complexas, suavizar contornos, etc.

����������� Assim, qualquer ponto Q da curva pode serent�o�� representado por meio da fun��o vetorial:

 

����������� Q(t) = [x(t) y(t) z(t)], ondeas tr�s fun��es x, y e z s�o polinomiais no par�metro t.

 

����������� A escolha do graudos polin�mios que v�o representar a curva � o que trataremos a seguir.

 

 

 

2.2.Curvas c�bicas param�tricas

��������

�������� Uma vez definida a utiliza��o da forma param�trica como a mais indicada para a representa��o de curvas, ter�amos agora que definir o grau do polin�mio que vai represent�-las.

����������� � importante ressaltar que uma curva polinomial de grau n requer n+1 pontos de controle, tendo a seguinte representa��o geral:


Para a curva polinomial de grau n, k varia entre o e n, sendo requeridos n+1 pontos de controle. E cada Ck � um vetor definido de forma matricial, onde as matrizes ck�� de n+1 colunas constituem os coeficientes de Q.

 

����������� As curvas polinomiais de terceira ordem (ou grau tr�s) mostraram ser as mais apropriadas, passando ent�o a ser largamente utilizadas em diversos m�todos matem�ticos para gera��o de curvas com fins de computa��o gr�fica.

�����������

����������� Tal escolha se deve ao fato de que polin�mios com graus mais baixos d�o pouca flexibilidade no controle da forma da curva e polin�mios com graus mais altos criam a necessidade de c�lculos mais elaborados e mais computa��o. Al�m disso, as representa��es polinomiais com graus mais elevados s�o indesej�veis muitas vezes por causa do aumento do n�mero depontos de inflex�o na curva.Obviamente, estes tipos de polin�mios t�m a sua utiliza��o, especialmente onde s�o requeridasordens maiores de continuidade, e s�oefetivamente aplicados em casos espec�ficos, como por exemplo na modelagem de superf�cies com aerodin�mica eficiente (design automobil�stico e de avi�es).

����������� Para fins de representa��o de curvas,�� os polin�mios c�bicos passaram ent�o a ser praticamente uma unanimidade nos m�todos matem�ticos criados para esse fim.

 

����������� Assim, os polin�mios c�bicos que definem um segmento curvo Q(t), sendo

����������� Q(t) = (x(t) y(t) z(t)) s�o da seguinte forma:

 

x(t) = axt3+bxt2 + cxt +dx

y(t) = ayt3+byt2 + cyt +dy

z(t) = azt3+bzt2 + czt+dz����sendo t restrito ao intervalo [0,1]

 

Para lidar com segmentos de curva definitos, sem perda da generalidade, se restringe o par�metro t ao intervalo [0,1].

����������� Fazendo T = [t3 t2 t 1] e definindo a matriz de coeficientes dos tr�s polin�mios como C, onde����

�����������������������


�����������

 


����������� Desta forma, pode-se reescrever a equa��o como:

 

����������� Q(t) = T. C = [t3 t2 t 1] . C

 

 

����������� A derivada da fun��o Q(t) � o vetor tangente param�trico da curva.E pode ser calculado aplicando esta defini��o � equa��o acima:

 

����������� Q�(t) = d T . C = [3t2 2t 1 0] . C

����������������� ������dt

����������� Como temos uma curvacom quatro pontos de controle (por ser de grau tr�s), podemos entender que a declividade da curva em sua origem � tangente � linha determinada pelo primeiro e segundo ponto de controle, bem como a declividade da curva em seu final ser� tangente � linha determinada pelos terceiro e quarto pontos de controle desta.

����������� O conceito de derivada ou vetor tangente a curva tamb�m pode ser interpretado comoum vetor velocidade. Se interpretarmos o par�metro tcomo tempo, e imaginarmos que, partindo do primeiro ponto de controle (t=0) e atravessando a curva at� alcan�armos o �ltimo ponto de controle (quarto, no caso), com t=1, ent�o a derivada da fun��o geradora da curva representar� a velocidade para atravess�-la. Desta forma, quanto maior a magnitude do vetor tangente, maior sua velocidade em atravess�-la.

Da mesmaforma, a segunda derivada desta fun��o poderia ser interpretada como um vetor de acelera��o.

����������� Os conceitos de derivadas e vetores tangentes s�o necess�rios para o entendimento das classifica��es aplicadas �s curvas no que diz respeito a sua continuidade, que discutiremos a seguir.

 

 

2.3 � Continuidade Geom�trica e Continuidade Param�trica

 

���������������

Um segmento de curva param�trica � por si s� cont�nuo em qualquer ponto. A continuidade a que vamos nos referir adiante ser� em rela��o ao ponto de encontro ou interse��o de dois segmentos de curva.

����������� Quando dois segmentos curvos se interceptam em um determinado ponto, dizemos que a curva tem continuidade geom�trica G0. Se as dire��es dos dois vetores tangentes (mas n�o necessariamente sua magnitude) s�o iguais no ponto de encontro de dois segmentos curvos, ent�o a curva tem continuidade geom�trica G1.

����������������������� Com rela��o � continuidade param�trica, se duas curvas se interceptam em um determinado ponto, tamb�m se diz que tal curva tem continuidade param�trica C0. Portanto, C0 equivale a G0.����������

J� o conceito de continuidade param�trica C1 difere do conceito de continuidade geom�trica G1 porque al�m de ser necess�rio que os dois vetores tangentes tenham a mesma dire��o, � necess�rio que eles tenham tamb�m a mesma magnitude. Desta maneira, diz-se que a curva tem primeiro grau decontinuidadeno par�metro t, ou C1 , quando apresenta a primeira derivada igual no ponto de interse��o para os dois segmentos da curva. Desta defini��o podemos concluir que, em geral, a continuidade param�trica C1 implica em continuidade geom�trica G1 , mas n�o necessariamente a rec�proca � verdadeira. Apenasem um caso especial C1�� n�o implica emG1: quando ambos os vetores tangentes s�o [0 0 0] no ponto de encontro. Neste caso, as tangentes s�o de fato iguais, mas podem apresentar dire��es diferentes.

Uma curva com continuidade param�trica C2 os dois segmentos de curva apresentam no ponto de encontro a segunda derivada igual, ou seja, a mesma acelera��o, o que garante maior continuidade neste ponto, tornando a curva mais suave, e assim por diante.

����������� Da mesma forma, o conceito de continuidade param�trica Cn pode ser estendido para a derivada de grau n da curva, ou seja,se a dire��o e a magnitude da derivada de grau n de dois segmentos de curva forem iguais num determinado ponto de interse��o, ent�o se diz que a curva apresenta continuidade param�trica Cnneste ponto.

����������� Em computa��o gr�fica, quase sempre pelo menos a continuidade geom�trica G1� requerida, raz�o pela qual � necess�rio o conhecimento destes conceitos.

 

 

3. Curvasde Bezier�����

 

3.1.Defini��o

 

�����������

Nas defini��es preliminares j� chegamos a conclus�o de que a melhor forma de representa��o de curvas para modelagem computacional, sobre v�rios aspectos � a forma param�trica. As curvas se definem especificandoum conjunto de pontos de controle, que indicam a forma geral da curva e com os quais se formam as equa��es param�tricas polinomiais que a descrevem.

�����������

Desta maneira, cada polin�mio c�bico da equa��o geral da curva ser�:

�����������

x(t) = axt3+bxt2+cxt+dx�����������������

y(t) = ayt3+byt2 +cyt+dy

����������������������� z(t) = azt3+bzt2 +czt+dz

cont�m 4 coeficientes, a, b, c e d, que correspondem aos pontos de controle da curva.

 

S�o, portanto, necess�rios 4 pontos de controle para definir a curva, permitindo formular quatro equa��es para quatro inc�gnitas. Conv�m relembrar que, por defini��o, uma curva param�trica de grau n precisa de n+1 pontos de controle.

���������������

Partindo desta defini��o de 4 �pontos de controle�para defini��o de uma curva c�bica param�trica, temos 3 tipos b�sicos de curvas, muito conhecidas e utilizadas na quase totalidade dos softwares de computa��o gr�fica. S�o elas: as curvas de Hermite, as curvas de Bezier e os diversos tipos de Splines.

�����������

Para as curvas de Hermite, sua representa��o �baseada na defini��o de dois �endpoints� e dois vetores tangentes a dois �endpoints�.

�����������

As Splines s�o definidas por quatro pontos de controle.

�����������

Passemos ent�o a nos ocupar apenas da curvas de Bezier, tema deste trabalho.

 

����������� Conforme j� definimos na introdu��o deste trabalho, a curva c�bica de Bezier � definida por 2 �endpoints� ou �ncoras (um �endpoint� de origem e um �endpoint� de destino) e dois �control points�, que n�o passam pela curva, mas definem sua forma.

��������

Desta forma, podemos tamb�m definir a curva c�bica de Bezier atrav�s da interpola��o de dois pontos de controle e da aproxima��o dos outros dois (ou seja, eles determinam a forma da curva, mas esta n�o passa por esses pontos).

��������

Pela pr�pria forma de gera��o, as curvas c�bicas de Bezier podem se apresentar de 3 formas b�sicas. Na primeira, o casomais geral, os control points (x1,y1) e (x2, y2) e os endpoints (xo,yo) e (x3,y3) s�o diferentes, ou seja, n�o coincidem, como ilustrado abaixo.

 

�����������


 

 


�����������

���

 

 

 

 

 

 

 


Um segundo caso pode ser descrito quando um dos �endpoints� coincide com seu �control point�, como ilustrado abaixo:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Passemos agora aos conceitos matem�ticos da curva de Bezier.����������

A forma polinomialda curva de Bezier indiretamente especifica o �endpoint� dovetor tangente,por especificar os dois �control points� que n�o est�o na curva. A figura a seguir [FOLEY, 1993] ilustra 2 curvas de Bezier e seus pontos de controle.


 

 


A curva passa pelos pontos P1 e P4 (endpoints) e se aproxima dos pontos P2 e P3 (control points). Seus vetores tangentes inicial e final s�o determinados pelos vetores P1P2 e P3P4e se relacionam �s tangentesR1 e R4 como :

�����������

R1 = Q�(0) = 3(P2 � P1), ou seja, a derivada da fun��o Q(t) para t=0

�����������

 

����������� R4 = Q�(1) = 3(P4 � P3), ou seja, a derivada da fun��o Q(t) para t=1

 

�����������

���������� Lembrando a f�rmula geralj� mostrada anteriormente nas defini��es preliminares:

�����������������������

Q(t) = T. C = [t3 t2 t 1] . C, onde

�����������

����������� C = M . G, sendo M a matriz base e G o vetor geom�trico dos pontos de controle.

�����������            

Precisamos ent�o definir a matriz base de Bezier para definir a forma da sua equa��o, uma vez que o seu vetor geom�trico �:

 


 


�����������

���������� Para chegarmos ent�o a nossa Matriz de Bezier(MB), podemos partir da matriz de Hermite j� calculada. Assim, precisamos definir uma matriz que defina a rela��o entre o vetor geom�trico de Hermite e o vetor geom�trico de Bezier, como descrito a seguir:

�����������

GH = MHB .�� GB

�����������������������

Como sabemos que:

 

R1 = 3 (P2 � P1) eR4 = 3 (P4 � P3), podemos reescrever:

�����������

 


 


�����������������������

Ent�o, para encontrar a matriz base de Bezier MB , usamos a equa��o para a curva de Hermite, substitu�mos

GH = MHB . GB e definimos aMB da seguinte maneira:

 

�����������

Q(t) = T . MH . GH = T . MH . (MHB . GB) = T . (MH . MHB) .GB = T. MB. GB, da�, tiramos que:

 

�����������

MB = MH . MHB e assimchegamos a matriz base de Bezier:

�����������������������

��������


 


����������� Lan�amos ent�o o valor da matriz para chegar a equa��o que define a curva de Bezier:

�����������

 

 

����������� Q(t) = T. MB. GB

= (1 � t)3P1 + 3t(1 �t)2P2 + 3t2(1 � t)P3 + t3P4

 

Se isolarmos os quatro polin�mios BB = T . MB, que s�o os pesos na equa��o da curva de Bezier, teremos:

�����������

����������� BB1 = (1-t)3

����������������������������������������������

���������������������� BB2 = 3t(1-t)2

����������������������������������������������

BB3 = 3t2(1-t)

����������������������������������������������

BB4 = t3

 

����������������������� Estes polin�mios s�o denominados de polin�mios de Bernstein, e cada um deles apareceilustrado na figura a seguir [FOLEY, 1993] :

�����������

 


 

 


��������������� A fun��o dos polin�mios de Bernstein � ent�o a de ponderar a participa��o dos pontos de controle(P1, P2, P3e P4)na gera��o da curva. ���

 

�����������������������   

 

Examinando os quatro polin�mios de Bernstein descritos anteriormente, verificamos quea soma deles �sempre unit�ria e que cada um deles nunca � negativo para t variando entre 0 e 1. Portanto, o segmento de curva definido como Q(t) � simplesmente uma m�dia ponderada de seus quatro pontos de controle. Esta condi��o implica que cada segmento de curva, que � definido pela soma dos seus�� quatro pontos de controle, devidamente ponderados pelos polin�mios de Bernstein, esteja sempre completamentecontido no �convex hull� dos seus quatro pontos de controle. O �convex hull�, tamb�m denominado casco convexo, para curvas em 2D representa o pol�gono convexo formado pelos quatro pontos de controle da curva.

 

��������������� O princ�piogeom�trico das curvas de Bezierbaseia-se na divis�o recursiva dos segmentos medianos de reta criados a partir da uni�o de seus pontos de controle da curva. Ou seja, come�ando de quatro pontos de controle, denominados P0, P1, P2 e P3,conectamos P0 a P1, P1 a P2 e P2 a P3, o que resulta no chamado �pol�gono de Bezier�. Como ent�o a curva � gerada?

�����������

Fazendo uma interpola��o linear em cada lado deste pol�gono, temos os pontos P01, P02 e P03 . Estes pontos tamb�m s�o ligados, e novamente o processo de interpola��o linear � feito, gerando maisdois pontos. Continuando o processo, unindo estes dois pontos e encontrando seu ponto m�dio, temosfinalmente o ponto por onde a curva dever� passar. Isto pode ser claramente visualizado pela ilustra��o abaixo [ARTWICK, 1984]. O processo de divis�o recursiva que aplica a interpola��o linear � chamado de �algoritmo de Casteljau�

�����������������������

 


 

 

 

 

 


3.2.Propriedades

 

�����������

�����������

Ap�s toda a defini��o da curva de Bezier e seus conceitos matem�ticos, podemosent�o relacionar uma s�rie de propriedades e caracter�sticas destetipo de curva.

*�� A curva de Bezierpode ser gerada por 3, 4, at� n + 1pontos de controle, o que determina que o polin�mio que a define seja de grau n. Geralmente em computa��o gr�fica se utiliza a curva de Bezierem sua forma c�bica, necessitando ent�o de 4 pontos de controle.

*�� A curva de Bezier sempre interpola o primeiro e o �ltimo ponto de controle e se aproxima dos outros dois. Isto equivale a dizer que a curva necessariamente passa pelos dois pontos de controle conhecidos como �endpoints�, �vertex points� ou pontos �ncoras, e tem a sua dire��o definida pelos outros dois pontos de controle, sem no entanto passar por eles.

*Dessa caracter�stica acima, podemos extrair uma outra, tamb�m de grande import�ncia na determina��o de sua geometria: acurva de Bezier fica sempre dentro do pol�gono definidopelos seus quatro pontos de controle, denominado de �convex hull�, pol�gono convexo ou ainda casco convexo.

*�� Se o primeiro e o �ltimo ponto de controle da curva, ou �endpoints� coincidem, ent�o temos uma curva de Bezier fechada.

*�� A soma dosquatro coeficientes que comp�em sua f�rmula matem�tica e definem o comportamento da curva de Bezier , conhecidos como polin�mios de Bernstein sempre � igual a 1(um).

*�� A curva pode ser rotacionada e translacionada fazendo estas opera��es em seus pontos de controle.

*�� A curva de Bezier, por sua composi��o, � extremamenteapropriada para subdivis�o recursiva, procedimento utilizado para desenhar eexibir (em v�deo ou outro meio) a curva. A�� subdivis�o � interrompida quando os pontos de controle chegam eles mesmos suficientemente pr�ximos da forma da curva, proporcionando assim uma melhor visualiza��o desta. Falaremos disto adiante.

 

 

4. Aplica��es

 

4.1. Subdivis�o das curvas de Bezier

�����������

No caso de termos que desenhar uma curva mais complicada e, manipulando seusquatro pontos de controle n�o conseguirmos alcan�ar a forma desejada, temos duas op��es a seguir para aumentar o n�mero de pontos de controle de uma curva de Bezier.

 

�������� Uma delas � a eleva��o do grau do polin�mio de tr�s para quatro ou mais. Embora, como j� mencionamos anteriormente, em alguns casos espec�ficos tal procedimento seja indicado, na maioria das vezes ele resulta em aumento significativo no trabalho matem�tico e aparecimento indesejado de mais pontos de inflex�o da curva. ������

 

A outra op��o, mais �til para aumentar o n�mero de pontos de controle sem alterar o grau dos polin�mios que a definem � a subdivis�o de um ou mais segmentos da curva em dois segmentos. Assim, por exemplo, no caso de uma curva de Bezier com seusquatro pontos de controle ser subdividida, teremos um total de 7 (sete) pontos de controle, uma vez que os novos segmentos ter�o em comum um ponto de controle. Os dois novos segmentos correspondem exatamente ao segmento original at� que seus novos pontos de controle sejam efetivamente alterados.

 

����������� Utilizando a mesma t�cnica de interpola��o lineardesenvolvida pelo algoritmo de Casteljau para definir a formula��o da curva de Bezier, podemos tamb�m chegar a f�rmula das matrizes dos dois novos segmentos de curva.

 

����������� A partir dessasmatrizes, denominadas matriz de divis�o esquerda de Bezier (DLB) e matriz de divis�o direita de Bezier (DRB) podemos ent�o chegar as equa��es que definem os dois novos segmentos de curva gerados a partir da subdivis�o da curva de Bezier original.���������

 

O processo de subdivis�o recursiva da curva de Bezier � tamb�m um dos m�todos mais utilizados parasua exibi��o(�display�) em computa��o gr�fica de uma forma geral.��

 

 

4.2.Compara��es com outras curvas c�bicas

 

 

�����������

Os diferentes tipos de curvas param�tricas podem ser comparadas por muitos crit�rios diferentes, tais como facilidade na manipula��o interativa, grau de continuidade nos pontos de uni�o, velocidade da computa��o utilizando cada tipo de formula��o, etc. Todos estes crit�rios devem ser levados em conta quando necessitamosexpressar matematicamente uma determinada curva para fins desua representa��o gr�fica.

��������

Conv�m ressaltar entretanto,o fato de que , para fins de computa��o gr�fica, n�o � necess�ria a escolha apenas de um tipo de curva, uma vez que a maioria dos editores gr�ficos interativos permitem converter as diversas representa��es entre si. Por exemplo, aosusu�rios dos sistemas interativos tipo CAD, s�o dadas as op��es dos diversos tipos de curva poss�veis, como Hermite, Bezier, B-splines e NURBs.

�����������

Al�m disso, a convers�o matem�tica entre as representa��es poss�veis de curvas param�tricas n�o � um trabalho complicado, e pode ser desenvolvido rapidamente, a exemplo do que utilizamos para demonstra��o da matriz base de Bezier, partindo da matriz de Hermite. O racioc�nio b�sico para compara��o seria o seguinte: dada uma curva representada pelo seu vetor geom�trico G1 e sua matriz base M1, queremos encontraro vetor geom�trico G2 equivalente para a matriz base de um outro tipo de curva, denominada M2, de forma que as curvas sejam id�nticas. Neste caso, realizamos os seguintes c�lculos:

�����������

Q(t) = T . M2 .G2 =T . M1 . G1, podemos reescrever a equa��o:

�����������

M2 .G2 =M1 . G1, multiplicandouma matriz pela sua inversa, temos

�����������

M2 �1 . M2 .G2 = M2 �1. M1 . G1, e assim chegamos a:

�����������

G2 = M2 �1. M1 . G1 = M1,2 . G1 , onde

�����������

M1,2� a matriz de transforma��o que converte o vetor geom�trico o vetor geom�trico conhecido da representa��o 1 para o vetor geom�trico desconhecido da representa��o2. E sua f�rmula � ent�o:

�����������

M1,2= M2 �1. M1

�����������

Atrav�s deste racioc�nio ent�o, podemos converter uma curva da forma B-spline para a forma de Bezier,ou de Hermite e vice-versa.

 

A seguir apresentamos um quadro comparativo entre as tr�s principais formas de curvas param�tricas, desenvolvido por [FOLEY, 1993].

 

 

 

HERMITE

BEZIER

SPLINE

�Convex hull� definido pelos pontos de controle

-

sim

sim

Interpola alguns pontos de controle

sim

sim

sim

Interpola todos os pontos de controle

sim

n�o

n�o

Facilidade de divis�o

boa

a melhor

m�dia

Continuidades inerentes na representa��o

C0

G0

C0

G0

C2

G2

Continuidades facilmente alcan�adas

C1

G1

C0

G0

C2

G2

N�mero de par�metros controlando a curva

4

4

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

�����������������������

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.3.Softwares que utilizam a curva de Bezier e sites relacionados

 

 

 

�����������

A grande maioria dos softwares gr�ficos dispon�veis no mercado utilizam o conceito da curva de Bezier, conforme j� mencionamos anteriormente, em fun��o da grande versatilidade deste tipo de representa��o para curvas. Entre eles, destacamos o Adobe Illustrator, O Corel Draw, o Auto CAD, e o Paint Shop Pro, todos mundialmente conhecidos.

��������

A utiliza��o da curva de Bezier para realizar anima��o tamb�m � poss�vel, embora trabalhosa. Para este tipo de trabalho, utiliza-se o conceito de deslocamento de um ponto ao longo da curva partindo do primeiro ponto �ncora at� alcan�ar o outro. Considerando-se a primeira derivada da curva como sua velocidade de deslocamento e a segunda derivada como a acelera��o para realizar este deslocamento, pode-se calculare executar um movimento ao longo desta curva. No site www.moshplant.com/direct-or/bezier isto pode ser visualizado.

�����������

Na INTERNET tamb�m podemos encontrar uma infinidade de sites relacionados a este tema, alguns inclusive disponibilizando scripts de programas e applets de Java, para visualiza��o e manipula��o online da curva de Bezier.

�����������

Relacionamos abaixo alguns destes sites:

*www.cstc.org/data/resources/47/bezier.html

�����������

*www.cs.princeton.edu/~min/cs426/classes/bezier.html

�����������

*www.math.ucla.edu/~baker/java/hoefer/Bezier.htm

*www.novalogix.com/bez.e_p.html

�����������

*www.inf.pucrs.br/~flash/cg/applets

�����������

*www.cgl.bu.edu/cg/shammi/480p4

�����������

 

5. Bibliografia

FOLEY, James, Van Dam, Feiner, Huges, Phillips. Introduction to Computer Graphics. Addison Wesley, 1993.

FARIN, Gerald E. The Geometry Toolbox for Graphics Modeling. A K Peters, 1998

ARTWICK, Bruce. Applied Concepts in Microcomputer Graphics. Prentice-Hall, 1984.

MACEDO, Lu�s Francisco. "Computacao Grafica: uma breve revisao em HTML� Tese de Mestrado em Computa��o Aplicada � INPE,