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çõ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,