Вы находитесь на странице: 1из 20

Gerao de Curvas e Superfcies

Walter Abraho dos Santos


Baseado em diversas fontes ...
http://www.fei.edu.br/~psergio
M.C.F. de Oliveira
Fontes:
D.F. Rogers & J.A. Adams, Mathematical Elements for Computer Graphics,
McGraw-Hill, 1999
Hearn & Baker, Cap. 8 (8-8 a 8-18)
An Interactive Introduction to Splines, on-line em
http://www.ibiblio.org/e-notes/Splines/Intro.htm
Robson Carlos da Motta - Curvas e Superfcies
0 , 0
P
0 , 3
P 1 , 3
P
2 , 3
P
3 , 3
P
3 , 2
P
3 , 1
P
3 , 0
P
0 , 2
P
0 , 1
P
1 , 0
P
2 , 0
P
Por que estudar curvas e superfcies?
Curvas e superfcies so
importantes em diversas reas tanto
na criao de objetos sintticos
quanto na visualizao de
fenmenos cientficos.
O estudo de curvas a base na
gerao de formas mais simples ou
objetos complexos, assim como
para todo estudo de superfcies.
Como representar Curvas e superfcies?
Uma simples
representao de
curva pode ser feita
como uma sucesso
de linhas retas
Mas, curvas e
superfcies complexas
demandam uma
maneira mais eficiente
de representao.
Exemplo de gerao de
curva ligando pontos
usando segmentos de reta.
Possveis suavizaes na
curva utilizando vetores
tangentes aos pontos.
Quantidade menor de pontos (9),
mas representao mais elaborada
Gerao de Superfcies
De forma geral, podemos ver
superfcies como uma
generalizao das curvas. Um
exemplo de superfcie
apresentado aqui, na qual
duas superfcies so exibidas
com o mesmo conjunto de
pontos.
Dependendo da tcnica de
gerao de superfcie utilizada
e o objetivo do usurio,
possvel se obter objetos
distintos a partir de um mesmo
conjunto de pontos.
Duas diferentes
superfcie para o mesmo
conjunto de pontos.
Gerao
de Curvas
A gerao feita baseada em alguns pontos
j conhecidos.
Considerando esses pontos h duas formas
principais de gerao da curva:
Uma curva que passe por todos os pontos ou
Identificao da melhor curva que represente os
pontos, independente de passar por eles ou no
Continuidade nos pontos de juno
Uma questo importante no
estudo de curvas (e
tambm em superfcies)
sua continuidade nos
pontos de juno.
Uma continuidade de
ordem 0 indica que a curva
se encontra no ponto, de
ordem 1 indica que h
continuidade na derivada
primeira, e de ordem 2 que
h continuidade na
derivada segunda.
Conceitos e tcnicas de gerao de curvas
A representao mais simples de um curva
a representao por conjunto de pontos.
Curva = um grande nmero de pontos, para
os quais visualmente tenha a aparncia de
uma curva, ou pela conexo dos pontos
considerando segmentos adequados.
Gerao de curvas considerando segmentos de
retas entre dois conjuntos de pontos.
Curvas de Bzier
A curva de Bzier pode ser gerada por um
polinmio de grau n, mas em geral utiliza-se
sua forma cbica, necessitando de 4 pontos
de controle, dois extremos e dois
intermedirios
Se voc costuma usar...
Illustrator, Photoshop,
Macromedia Freehand,
CorelDRAW, CorelPAINT,
programas para animao e/ou
coisas parecidas, com certeza j
utilizou essa bela e til
ferramenta.
Video - Making of a GeoGebra Work -
Bezier Curve - YouTube
http://www.youtube.com/watch?v=LDUeuV-LImc
Pierre
Etienne
Bzier
http://digitalvitima.blogspot.com.br/2010/09/pierre-etienne-bezier-curva-de-bezier.html
Pierre tienne Bzier (Paris, 1 de
setembro de 1910 25 de novembro
de 1999) foi um engenheiro francs,
criador da curva de Bzier.
Como as curvas de Bezier funcionam?
Videos de Curvas Bezier em Games
Curva de Bezier e Inventario
http://www.youtube.com/watch?v=jo2Q5kZQvjs&feature=related
Curvas e Superfcies: as curvas de Bzier
Algoritmo de Casteljau
0
P
1
P
2
P
3
P
0
B
1
B
2
B
0
C
1
C
0 1 2 3
0 1 2
0 1
0
D C B P
C B P
B P
P
0
D
Curvas e
Superfcies
As Curvas de Bzier
0
B
1
B
2
B
3
B
4
B
5
B
Desenvolvida por Pierre Bzier durante seus trabalhos em projetos de
automveis para a Renault francesa no incio da dcada de 1960.
A grande maioria dos Softwares de Computao Grfica disponveis
no mercado usam o conceito de Curvas de Bzier. Entre eles:Adobe, Corel Draw,
AutoCad, Paint Shop Pro, 3D Studio Max
Curvas e Superfcies: as curvas de Bzier
0
B
1
B
2
B
3
B
4
B
5
B
Esse tipo de curva, por no usar o conceito de vetor e apenas pontos, mais
compreensvel pelos usurios.
Para ajuste por um polinmio de grau n, a curva de Bzier pode ser gerada por
3, 4, at n+1 pontos de controle.
Geralmente, suficiente usar 4 pontos, gerando uma curva cbica.
A curva de Bzier passa pelo primeiro e ltimo ponto, e usa os demais para
construir sua tangente.
Curvas e Superfcies: as curvas de Bzier
0
B
1
B
2
B
3
B
4
B
5
B
0 0 , ) ( ) (
0
,
=

=
t t J B t P
n
i
i n i
( ) ( )
i n
i
i n
i
i n
t t
i n i
n
t t
i
n
t J

=
|
|

\
|
= 1
)! ( !
!
1 ) (
,

=
=
n
i
i n
t J
0
,
1 ) (
Curvas e Superfcies: as curvas de Bzier
1 0 1 ) (
0
,
=

=
t t J
n
i
i n
Essa propriedade chamada de propriedade normalizante, e
fora a curva gerada a ficar inteiramente dentro da figura convexa
(convex hull) definida pelos pontos de controle B
i
0
B
1
B
2
B
3
B
5
B
0
B
1
B
2
B
3
B
4
B
5
B
Curvas e Superfcies: as curvas de Bzier
0
B
1
B
2
B
3
B
4 0
B B =
1
B
2
B
3
B
4
B
Conexo de vrios segmentos de curvas de graus menores para
simplificao da expresso
Curvas e Superfcies: as curvas de Bzier
Nveis de continuidade da unio entre duas curvas
sem continuidade
continuidade C
0
continuidade C
1
continuidade C
2
B-Splines
O nome Spline faz aluso ao termo da
lngua inglesa utilizado para denominar
rgua flexvel usada em desenhos para
gerar curvas suaves, de classe C2. Na
qual a alterao em qualquer ponto afeta
a curva toda.
Spline, rgua flexvel usada
em desenhos de curvas
suaves
A curva B-Spline
A curva B-Spline uma verso da
Spline, com controle local, ou seja, as
alteraes em um ponto afetam apenas os
vizinhos mais prximos. Alm disso, as
curvas B-Spline no necessariamente
passam por algum ponto de controle,
como pode ser visto no exemplo da figura
Exemplo de uma
curva B-Spline com 5
pontos de controle
Como se geram curvas em B-Spline?
Curvas B-Spline
geradas por um vetor de
ns uniformes e
peridicos.
A curva pode ser gerada com
qualquer grau de polinmio
independente do nmero de
pontos de controle, mas
afetando a continuidade,
sendo que para um grau de
polinmio k ser obtido
continuidade k 1.
A gerao da curva bem
semelhante a curva de Bzier,
um conjunto de funoes
combinam os pontos de
controle para gerar a curva.
Video - [EGG-Engine] Fun with B-
Spline paths
[EGG-Engine] Fun with B-Spline paths
http://www.youtube.com/watch?v=LQtKP-EymFM
Video - Cryo Engine - Update 2: B-
Splines
Cryo Engine - Update 2: B-Splines
http://www.youtube.com/watch?feature=endscreen&NR=1&v=MTX2DIQRX4A
Curvas e
Superfcies
Desenvolvida em 1967 por Schenberg, so at hoje os tipos mais populares em
Computao Grfica.
Uma B-Spline uma verso da curva de Bzier que no passa pelos pontos de
controle, o que permite ela ser gerada para qualquer nmero de pontos de controle
tornando o grau do polinmio independente do nmero de pontos bases.
0
B
1
B
2
B
3
B
4
B
5
B
B-Splines
Curvas e Superfcies: Curvas
Racionais
Forma Inteira Forma Racional
Bzier

=
n
i
i n i
t J B
0
,
) (

=
=
n
i
i n i
n
i
i n i i
t J w
t J B w
0
,
0
,
) (
) (
B-Spline

=
n
i
k n i
t N B
0
,
) (

=
=
n
i
k i i
n
i
k i i i
t N w
t N B w
0
,
0
,
) (
) (
As curvas vistas at agora possuem uma verso racional, que
so normalizadas por pesos w
i
A vantagem da representao racional a invarincia com relao projeo
Curvas e Superfcies: Curvas
Racionais
Para o caso especfico da B-Spline, se o conjunto de ns for no-uniforme,
e a curva tratar-se de uma superfcie racional, ela chamada de
Non Uniform Rational Base Spline, mais conhecida como NURBS
As curvas racionais, principalmente as NURBS, tm se tornado muito
populares, sobretudo em sistemas complexos como CAD.
Controlando os pesos, podemos controlar a suavidade da curva prximo
aos pontos de controle correspondentes.
0
B
1
B
2
B
3
B
4
B
5
B
6
B
1 . 0
3
= w
5 . 0
0 . 4
Curvas e Superfcies: Superfcies
Bzier
As superfcies de Bzier so uma extenso direta das curvas de Bzier,
uma vez que basta apenas acrescentar mais uma dimenso.
A expresso para as superfcies de Bzier a seguinte:
1 , 0 ) ( ) ( ) , (
0 0
, , ,
=

= =
t s t J s J B t s P
n
i
m
j
m j n i j i
T
B
SM t s P T M G ) , (
T
B B
=

] 1 t t t [ M G ] 1 [ ) , (
2 3 T
B B
2 3
B
M s s s t s P =
(
(
(
(


=
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
B
M
(
(
(
(

=
3 , 3 2 , 3 1 , 3 0 , 3
3 , 2 2 , 2 1 , 2 0 , 2
3 , 1 2 , 1 1 , 1 0 , 1
3 , 0 2 , 0 1 , 0 0 , 0
P P P P
P P P P
P P P P
P P P P
G
B
Curvas e Superfcies: Superfcies B-
Splines
As superfcies de B-Splines, como as superfcies de Bzier, so uma extenso
direta das curvas de B-Splines, uma vez que basta apenas acrescentar mais
uma dimenso. A expresso para as superfcies de Bzier a seguinte:
1 , 0 ) ( ) ( ) , (
0 0
, , ,
=

= =
t s t N s N B t s P
n
i
m
j
l j k i j i
0 , 0
P
0 , 3
P 1 , 3
P
2 , 3
P
3 , 3
P
3 , 2
P
3 , 1
P
3 , 0
P
0 , 2
P
0 , 1
P
1 , 0
P
2 , 0
P
Curvas e Superfcies: Superfcies Racionais
) , ( t s P Forma Inteira Forma Racional
Bzier

= =
n
i
m
j
m j n i j i
t J s J B
0 0
, , ,
) ( ) (


= =
= =
n
i
m
j
m j n i j i
n
i
m
j
m j n i j i j i
t J s J w
t J s J B w
0 0
, , ,
0 0
, , , ,
) ( ) (
) ( ) (
B-Spline

= =
n
i
m
j
l j k i j i
t N s N B
0 0
, , ,
) ( ) (


= =
= =
n
i
m
j
l j k i j i
n
i
m
j
l j k i j i j i
t N s N w
t N s N B w
0 0
, , ,
0 0
, , , ,
) ( ) (
) ( ) (
Assim como as curvas, as superfcies possuem a verso racional, e
da mesma forma so normalizadas por pesos w
i
B-spline curves.
B-spline curves with grid.
B-spline curves with grid.
Fim de ...
Gerao de Curvas e Superfcies