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��es� com outras curvas� c�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 ela�
pode 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 Bezier� propriamente, 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��es� da Curva
�������� Existem basicamente
3 formas de representa��o para curvas: a expl�cita, a� impl�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� existe� um valor
de y para cada valor de x (o mesmo acontecendo com� o valor de z), o que
inviabiliza� o uso de tal forma de
representa��o para� o 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��es� da seguinte�
forma:
����������� 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 encontram� e 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�vel�
espacial x, y e z em fun��o� de uma
vari�vel independente t, que � chamada de�
par�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 ser� ent�o��
representado por meio da fun��o vetorial:
����������� Q(t) = [x(t) y(t) z(t)], onde�
as tr�s fun��es x, y e z s�o polinomiais no par�metro t.
����������� A escolha do grau� dos 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 de� pontos de inflex�o na curva.� Obviamente, estes tipos de polin�mios t�m a
sua utiliza��o, especialmente onde s�o requeridas� ordens maiores de continuidade, e s�o� efetivamente 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 curva� com 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 como� um vetor velocidade. Se
interpretarmos o par�metro t�
como 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
mesma� forma, 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 de� continuidade� no 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. Apenas� em um caso especial �C1�� n�o implica em� G1� : 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 Cn� neste 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. Curvas� de 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
especificando� um 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 caso� mais 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 polinomial� da
curva de Bezier indiretamente especifica o �endpoint� do� vetor 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 P3P4� e se relacionam �s
tangentes� R1
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 geral� j� 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)
e� R4
= 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
a� MB
�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 assim� chegamos 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 aparece� ilustrado 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, P3� e P4)� na gera��o da curva. ���
�����������������������
Examinando os quatro
polin�mios de Bernstein descritos
anteriormente, verificamos que� a 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 completamente� contido 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�pio� geom�trico das curvas de Bezier� baseia-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 mais� dois pontos.
Continuando o processo, unindo estes dois pontos e encontrando seu ponto m�dio,
temos� finalmente 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, podemos�
ent�o relacionar uma s�rie de propriedades e caracter�sticas deste� tipo de curva.
�� A curva de Bezier� pode ser gerada por 3, 4, at� n + 1� pontos 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 Bezier� em 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: a� curva
de Bezier fica sempre dentro do pol�gono definido� pelos 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 dos�
quatro 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,
� extremamente� apropriada para subdivis�o
recursiva, procedimento utilizado para desenhar e� exibir (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
seus� quatro 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
seus� quatro 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 linear� desenvolvida 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 dessas� matrizes, 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
para� sua 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 necessitamos� expressar
matematicamente uma determinada curva para fins de� sua 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, aos� usu�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
encontrar� o 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, multiplicando�
uma 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��o� 2. 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 calcular� e
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,