A maior rede de estudos do Brasil

Grátis
7 pág.
Bezier e Catmullrom

Pré-visualização | Página 1 de 4

Curvas de Bézier e Catmull-Rom: 
Aplicação Interativa de uma Curva Cúbica. 
Jônatas Venancio Teixeira 
PPGEE, Programa de Pós Graduação em Engenharia Elétrica 
Universidade do Estado de Santa Catarina 
Joinville, Brasil 
teixeirajv@ymail.com 
 
Resumo — As bases matemáticas da modelagem geométrica 
computacional foram lançadas por diferentes matemáticos do 
século passado dentre eles pode-se citar Hermite e Bézier. Na 
época buscavam-se formas de tracejar curvas suaves para 
representar formas complexas. Este trabalho relata o processo de 
desenvolvimento de um programa de geração de curvas cúbicas 
de Bézier e Catmull-Rom permitindo alterar livremente os 
pontos de controle das curvas em um espaço 2D e impor 
condições de continuidade. 
Palavras-chave — Curvas de Bézier, Curvas de Catmull-
Rom, curva cúbica interativa, restrições de continuidade C0 e C1, 
aplicação em Flash. 
I. INTRODUÇÃO 
Este trabalho relata brevemente o desenvolvimento de um 
ambiente interativo em Flash no qual o usuário é capaz de 
reposicionar qualquer um dos pontos de controle de uma curva 
cúbica de Bézier e de Catmull-Rom. Na seção II será feita 
uma breve revisão da literatura sobre as curvas de Bézier e 
Hermite e Catmull-Rom. Como o objetivo era criar um 
ambiente interativo de edição de uma Spline de Bézier e de 
Catmiull-Rom, serão abordadas as formulações algébricas 
referentes às curvas lineares, quadráticas e cúbicas de Bézier, 
em seguida a cúbica de Hermite será abordada para efeitos de 
comparação com a cúbica de Bézier e Catmull-Rom, 
posteriormente serão feitas abordagens sobre a formulação 
utilizada para modelar uma curva de Catmull-Rom. Será visto 
que as curvas de Bézier são muito parecidas com as curvas de 
Hermite, porém as funções base são diferentes. 
Na seção III são abordados o problema proposto e a sua 
resolução indicando como foram calculados os pontos da 
curva de Bézier e os resultados obtidos pelo programa. 
Conclui-se este trabalho na seção IV, na seção V são 
apresentadas as referências bibliográficas e na seção VI é 
apresentado o código completo desenvolvido para os fins 
deste trabalho e Revisão da Literatura 
A modelagem geométrica utiliza uma composição de 
elementos geométricos simples para obter representações de 
objetos do mundo real. O ponto é o elemento geométrico mais 
simples, da união destes obtêm-se as curvas e da junção das 
curvas provêm os planos. 
Diferentes formulações matemáticas foram propostas para 
curvas ao longo do tempo, a curva de Hermite é definida em 
função de polinômios cúbicos e um conjunto correspondente 
de equações vetoriais. As técnicas de interpolação de Hermite 
possui algumas fragilidades ao serem implementadas em 
processos interativos de modelagem geométrica, quando se 
tenta controlar o formato de uma curva movimentando os 
pontos de interpolação pode-se obter um resultado diferente 
do esperado. Este problema é solucionado em parte pela curva 
de Bézier desenvolvida em 1960 por P. Bézier [1, pg. 81]. 
As curvas de Bézier são obtidas a partir de equações 
paramétricas que relacionam os pontos da curva aos vértices 
de um polígono característico. Quanto maior a quantidade de 
pontos do polígono maior a graduação do polinômio da curva. 
O caso mais simples possui apenas dois pontos resultando em 
um polinômio de primeiro grau, conforme a equação (1). 
𝐵(𝑡) = (1 − 𝑡)𝑃0 + 𝑡𝑃1 (1) 
Na equação (1) P0 e P1 são os dois pontos de controle, t é 
um parâmetro da curva que variando de 0 a 1 descreve uma 
reta que liga os dois pontos de controle. Quando o polígono 
característico possui três pontos obtém-se um polinômio de 
segundo grau conforme pode-se observar na equação (2). 
𝐵(𝑡) = (1 − 𝑡)2𝑃0 + 2𝑡(1 − 𝑡)𝑃1 + 𝑡
2𝑃2 (2) 
Os pontos presentes nas equações das curvas de Bézier 
representam as coordenadas cartesianas dos pontos de controle 
que influenciam os pontos da curva em função do parâmetro t. 
A figura 1 ilustra a construção de uma curva quadrática de 
Bézier. Os pontos auxiliares Q0 e Q1 variam linearmente 
segundo uma equação de primeiro grau de Bézier entre os 
pontos de controle e o ponto B pertencente a curva de Bézier 
varia linearmente entre os pontos Q0 e Q1, esta característica 
de variação linear entre o pontos pode ser utilizado para criar 
algoritmo recursivo, este tipo de recurso será utilizado 
posteriormente em nossa aplicação. 
 
Fig. 1 – Construção de uma curva quadrática de Bézier [2]. 
A partir de um polígono característico com quatro pontos 
obtém-se um polinômio de terceiro grau resultando em uma 
curva cúbica de Bézier, a equação do polinômio resultante 
pode ser observada na equação (3). 
B(t) = (1 − t)3P0 + 3t(1 − t)
2P1 + 3t
2(1 − t)P2 + t
3P3 (3) 
A construção da curva cúbica resultante do polinômio de 
terceiro grau é ilustrada na figura 2, assim como na figura 1 
existem pontos auxiliares que variam entre os pontos de 
controle, porém agora existem pontos R0 e R1 que se movem 
entre os pontos Q0, Q1, e Q2 e finalmente o ponto B da curva 
resultante varia entre R0 e R1. Desta forma é possível construir 
uma curva cúbica a partir dos pontos Pi, Qi, e Ri todos 
variando linearmente em função das posições dos pontos de 
referência e do parâmetro t. 
 
Fig. 2 – Construção de uma curva cúbica de Bézier [3]. 
Tanto na figura 1 quanto na figura 2 os pontos auxiliares e 
o ponto B estão posicionados para t = 0,25. As curvas cúbicas 
de Hermite por outro lado são definidas em função de dois 
pontos e dois vetores direcionais, a direção e o modulo destes 
vetores servem como parâmetro para alterar a forma da curva. 
A figura 3 ilustra a obtenção de uma cúbica de Hermite em 
função dos pontos e dos vetores de referência. 
 
Fig. 3 – Construção de uma curva cúbica de Hermite [1]. 
As coordenadas dos pontos P0, P1, P0u e P1u são 
multiplicadas pelas funções base de Hermite e posteriormente 
somadas para obter as coordenadas dos pontos pertencentes às 
curvas. O polinômio resultante para uma cúbica de Hermite 
corresponde à equação (4). 
𝐵(𝑢) = (2𝑢3 − 3𝑢2 + 1)𝑃0 + (−2𝑢
3 + 3𝑢2)𝑃1 +
(𝑢3 − 2𝑢2 + 𝑢)𝑃0
𝑢 + (𝑢3 − 𝑢2)𝑃1
𝑢 (4) 
O controle das retas tangentes pode tornar a confusa 
manipulação das formas da curva, pois se torna difícil 
imaginar os efeitos que a manipulação das retas tangentes 
podem causar sobre a curva, para tornar o controle mais 
intuitivo são utilizados outros tipos de Splines como as 
Cardinais, as Catmull-Rom e as TCB-Splines,está última é a 
própria Spline Hermite com um aparato adicional de cálculo 
das tangentes [4]. 
Pode-se observar que a cúbica de Hermite difere da cúbica 
de Bézier somente nas funções base que multiplicam os pontos 
de controle da curva, essa sutil diferença faz com que o 
controle da forma da curva seja mais fácil de prever. O ponto 
P1u da figura 3 corresponde ao ponto P1 da figura 2, pode-se 
notar que para se obter a curva da figura 3 foi necessário 
posicionar o ponto P1u depois do ponto P1 fazendo com que a 
curvatura da Spline fosse tangente ao vetor diretor do ponto 
P1u. Este comportamento pode se tornar confuso para o 
usuário, a mesma forma de curva pode ser obtida alterando o 
ponto P1 na cúbica de Bézier, conforme pode ser observado na 
figura 8. 
Diferentes formulações para a curva de Catmull-Rom 
podem ser encontradas na literatura. Em [5] foi apresentada 
uma formulação parametrizada de Catmull-Rom por C. 
Twigg. Neste trabalho a equação da curva é deduzida a partir 
da comparação da equação genérica de uma cúbica dada pela 
equação (5) e as condições de continuidade nas extremidades 
da curva. Na figura 4 podemos observar a curva de Catmull-
Rom utilizada por Twigg em sua dedução, como podemos 
observar, a tangente da curva no ponto pi-1 e é determinada por 
um vetor que vai do ponto antecedente, pi-2 no caso do ponto 
pi-1, ao ponto posterior, pi no caso do ponto pi-1,analogamente é 
definida