curvas e superfícies - webserver2.tecgraf.puc-rio.br · esfera. equações da forma f(x, y) ... de...

34
CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio Curvas e Superfícies - Parte 1 1 Curvas e Superfícies Baseado em materiais preparados por Marcelo Gattass – Depto. de Informática – PUC-Rio e André Maués Brabo Pereira – Depto. de Eng. Civil – UFF (adaptado por Luiz Fernando Martha para a disciplina CIV2802 – Sistemas Gráficos para Engenharia) Quatro tipos de representações para curvas e superfícies são comuns em Computação Gráfica e Projeto Geométrico: explícita, implícita, paramétrica e procedural. Cada uma dessas alternativas será brevemente introduzida, entretanto apenas uma forma particular será enfatizada, a representação paramétrica, utilizada ao longo do curso. Representações de Curvas e Superfícies Fonte:

Upload: hoanghanh

Post on 10-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 1

Curvas e Superfícies

Baseado em materiais preparados por

Marcelo Gattass – Depto. de Informática – PUC-Rio

e

André Maués Brabo Pereira – Depto. de Eng. Civil – UFF

(adaptado por Luiz Fernando Martha para a disciplina

CIV2802 – Sistemas Gráficos para Engenharia)

Quatro tipos de representações para curvas e

superfícies são comuns em Computação Gráfica

e Projeto Geométrico: explícita, implícita,

paramétrica e procedural.

Cada uma dessas alternativas será brevemente

introduzida, entretanto apenas uma forma

particular será enfatizada, a representação

paramétrica, utilizada ao longo do curso.

Representações de

Curvas e Superfícies

Fonte:

Page 2: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 2

Ao estudar geometria analítica, é comun utilizar coordenadas

retangulares e considerar equações da forma y = f(x). Os

gráficos (x, f(x)) dessas funções são curvas no plano. Por

exemplo, y = 3x + 1 representa uma linha reta, e y = x2

representa uma parábola (ver figura).

Similarmente, podem-se gerar superfícies ao considerar

equações da forma z = f(x,y): a equação z = 2x + 5y - 7

representa um plano no espaço, e z = x2 - y2 representa um

paraboloide hiperbólico.

Expressões da forma y = f(x) ou z = f(x,y) são chamadas de

representações explícitas porque elas expressam uma

variável explicitamente em termos das outras variáveis.

Representações

Explícitas

Nem todas as curvas e superfícies podem ser prontamente

capturadas por uma única expressão explícita. Por exemplo,

o círculo de raio unitário e centrado na origem é

representado implicitamente por todas as soluções da

equação x2 + y2 - 1 = 0. Se tentar resolver explicitamente

para y em termos de x, obtém-se

que representa apenas a metade superior do círculo.

Portanto, tem de usar duas fórmulas explícitas

para capturar o círculo inteiro. Muitas vezes é mais fácil ficar

com a equação implícita original em vez de resolver

explicitamente por uma das variáveis. Assim, x2 + y2 - 1 = 0

representa um círculo, e x2 + y2 + z2 - 1 = 0 representa uma

esfera. Equações da forma f(x, y) = 0 ou f(x, y, z) = 0 são

chamadas representações implícitas porque representam a

curva ou superfície implicitamente sem resolver

explicitamente por uma das variáveis.

Representações

Implícitas

Page 3: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 3

Representações implícitas são mais gerais do que as

representações explícitas. A curva explícita y = f(x) é a mesma

curva implícita y - f(x) = 0, porém como já foi visto, nem

sempre é uma questão simples converter uma curva implícita

numa única fórmula explícita. Além disso, as equações

implícitas podem ser utilizadas para definir curvas e

superfícies fechadas ou curvas e superfícies que se auto-

interceptam, formas que são impossíveis de representar com

funções explícitas (figura no próximo slide).

Para curvas e superfícies fechadas, a equação implícita pode

também ser usada para distinguir o interior do exterior,

olhando para o sinal da expressão implícita. Por exemplo,

para pontos dentro do círculo unitário x2 + y2 - 1 < 0, e para

pontos fora do círculo unitário x2 + y2 - 1 > 0. Esta capacidade

de distinguir facilmente entre o interior e o exterior de uma

curva ou superfície fechada é frequentemente importante em

aplicações de modelagem de sólidos.

Representações

Implícitas

A lemniscata de Bernoulli: (x2+y2)2 - (x2-y2)2 = 0. Note que

diferentemente de funções explicitas, os gráficos de

equações implícitas podem se auto-interceptarem.

Representações

Implícitas

Page 4: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 4

No entanto, as representações implícitas também têm suas

desvantagens. Dada uma representação explícita y = f(x),

pode-se facilmente encontrar muitos pontos da curva (x,f(x)),

selecionando valores para x e calculando f(x).

Se as funções f(x) forem restritas a funções elementares

como polinômios, então para cada x existe um único y

facilmente calculável. Assim, é uma questão simples

representar graficamente a curva y = f(x).

Por outro lado, pode não ser uma tarefa tão fácil encontrar

pontos na curva f(x,y) = 0. Para muitos valores de x pode não

existir um valor correspondente y, ou pode haver vários

valores de y, mesmo que as funções de f(x,y) sejam restritas

a polinômios em x e y.

Encontrar pontos em superfícies implícitas f(x,y,z) = 0 pode

ser ainda mais complicado. Assim, pode ser difícil renderizar

curvas e superfícies definidas implicitamente.

Representações

Implícitas

Existe outra forma padrão para representar curvas e superfícies,

que é mais geral do que a forma explícita e que é ainda fácil de

renderizar. Pode-se expressar curvas e superfícies

parametricamente, representando cada coordenada com uma

equação explícita em um novo conjunto de parâmetros. Para

curvas planas tem-se x = x(t) e y = y(t), para superfícies em 3D

tem-se x = x(s,t), y = y(s,t) e z = z(s,t). Por exemplo, as equações

paramétricas

representam o círculo unitário centrado na origem. Pode-se

facilmente verificar que x2(t) + y2(t) - 1 = 0. Da mesma forma, as

equações paramétricas

representam uma esfera unitária: x2(s,t) + y2(s,t) + z2(s,t) - 1 = 0.

Muitas vezes, restringe-se o domínio do parâmetro. Deste modo,

uma curva paramétrica é tipicamente a imagem de um segmento

de reta; uma superfície paramétrica, a imagem de uma região -

geralmente retangular ou triangular - do plano.

Representações

Paramétricas

Page 5: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 5

A representação paramétrica tem várias vantagens. Assim como

a representação explícita, a representação paramétrica é fácil

de renderizar: basta avaliar as funções de coordenadas em

vários valores dos parâmetros. Assim como as equações

implícitas, equações paramétricas também podem ser usadas

para representar curvas e superfícies fechadas, bem como as

curvas e superfícies que se auto-interceptam. Além disso, a

representação paramétrica tem outra vantagem: é fácil estender

para dimensões maiores. Para ilustrar: caso deseja-se

representar uma curva em 3D, tudo o que precisa fazer é

introduzir uma equação adicional z = z(t). Assim, as equações

paramétricas

representam uma linha em 3D. A figura

ilustra uma curva paramétrica mais

complicada em 3D. A hélice:

x = cos(t), y = sin(t), z = t/5.

Representações

Paramétricas

A representação paramétrica tem suas próprias idiossincrasias.

A representação explícita de uma curva é única: o gráfico de

y = g(x) é a mesma curva como o gráfico de y - f(x) = 0 se e

somente se g(x) = f(x).

Analogamente, se restringir às funções polinomiais, então a

representação implícita f(x,y) = 0 é essencialmente única.

No entanto, a representação paramétrica de uma curva não é

única. Por exemplo, as equações

são duas representações paramétricas muito diferentes para o

círculo unitário x2 + y2 = 1. Além disso, para parametrizações

polinomiais ou racionais, sabe-se que para uma dada curva ou

superfície paramétrica encontra-se uma curva ou superfície

polinomial implícita. O inverso, no entanto, não é verdade.

Existem curvas e superfícies polinomiais implícitas que não

possuem parametrização polinomial ou racional. Assim, a forma

polinomial implícita é mais geral do que a forma paramétrica.

Representações

Paramétricas

Page 6: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 6

No entanto, por causa de seu poder, simplicidade e facilidade

de uso, a representação paramétrica de curvas e superfícies

é a mais utilizada. Além disso, a representação paramétrica

funciona igualmente bem em um número arbitrário de

dimensões. Note-se que no caso unidimensional a

representação paramétrica é a mesma que a representação

explícita, portanto as representações explícitas serão

cobertas automaticamente como um caso especial.

As vezes será útil pensar sobre o caso especial de

representações explícitas, mas que não gere confusão,

porque as curvas paramétricas apresentam propriedades

geométricas tais como a auto-intersecção que nunca ocorre

em representações explícitas. Curvas paramétricas planares

(x(t), y(t)) são muito mais flexível do que os gráficos planares

(t,x(t)) de funções explícitas.

Representações

Paramétricas

Resta dizer que tipos de funções serão permitidas nas

representações paramétricas de interesse. A questão principal

é a seleção das funções paramétricas que devem ser

utilizadas para gerar curvas e superfícies adequadas.

Geralmente as funções utilizadas serão variantes de

polinômios: ou polinômios simples ou funções racionais

(razões de polinômios), ou ainda polinômios por partes

(splines) ou funções racionais por partes.

Polinômios têm muitas vantagens, especialmente quando

usados em conjunto com um computador. Polinômios são

fáceis de avaliar. Além disso, as funções mais complicadas

são geralmente avaliadas calculando alguma aproximação

polinomial, então não está se perdendo nada ao se restringir a

polinômios em primeiro lugar. Além disso, há uma teoria bem

desenvolvida de polinômios em análise numérica e teoria da

aproximação; computação gráfica e modelagem geométrica

empregam extensivamente conhecimentos dessa teoria.

Representações

Paramétricas

Page 7: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 7

Ainda tem-se que mencionar as curvas ou superfícies

proceduralmente definidas. Em projetos geométricos, offsets,

composições e filetes são frequentemente especificados por

procedimentos em vez de fórmulas. Na modelagem de

sólidos, a geometria é frequentemente construída

proceduralmente através de operações booleanas, como

união, interseção e diferença. A maioria das superfícies

fractais e curvas que preenchem completamente um espaço

são definidas por algoritmos recursivos e não com fórmulas

explícitas.

Não serão discutidos quaisquer destes tipos de

procedimentos neste curso. Subdivisão é um outro

paradigma para a definição de curvas e superfícies,

explorando procedimentos recursivos. Uma vez que certas

técnicas de subdivisão estão intimamente relacionadas com

curvas e superfícies paramétricas, será mais negócio discutir

sobre esses métodos mais adiante neste curso.

Representações

Procedurais

Talvez a maneira mais fácil de descrever uma forma é

selecionar alguns pontos sobre essa forma. Dada uma

quantidade suficiente pontos, o olho tem uma tendência

natural de interpolar suavemente entre os dados. Aqui este

problema será estudado matematicamente. Dado um

conjunto finito de pontos no espaço afim, serão investigados

métodos para gerar curvas e superfícies polinomiais que

interpolam os pontos. Começa-se com esquemas para

curvas e, posteriormente, estende-se tais técnicas para

superfícies.

Curvas

Page 8: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 8

Curvas

• Linhas

• Beziers

• B-Splines

• NURBS

• Outros tipos especiais de curvas:

Poli-linhas, arcos de círculo e arcos

de elipses

Curvas

Requisito 1: Independência de eixos

x

y

Page 9: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 9

Curvas

Requisito 2: Valores Múltiplos

x

y

Curvas

Requisito 3: Controle Local

x

y

Page 10: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 10

Curvas

Requisito 4: Pouca Oscilação

polinômio de grau elevado

Curvas

Requisito 4: Continuidade Variável

Page 11: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 11

Curvas

Requisito 5: Versatilidade

Curvas

Requisito 6: Amostragem Uniforme

∆s1

∆s2

∆s3

∆s4

∆sn

∆si ≈ ∆sj

Curvas – Requisito 7:

Formulação matemática tratável

Finalizando:

Page 12: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 12

Solução

Curva representada por partes através de

polinômios de grau baixo (geralmente 3)

zzzz

yyyy

xxxx

dtctbtatz

dtctbtaty

dtctbtatx

+++=

+++=

+++=

23

23

23

)(

)(

)(

[ ]

[ ] globaluuu

ou

localt

n,

1,0

0∈

t=0

t=1

Parametrização

t=0 t=1 t=0 t=1t=0 t=1

u0 u1 u2 un

zzzz

yyyy

xxxx

dtctbtatz

dtctbtaty

dtctbtatx

+++=

+++=

+++=

23

23

23

)(

)(

)(

continuidade no

ponto comum dos

trechos

Geometria Diferencial

s

P(u)

)()( uPdu

duR

��=ou P(s)

)()(ˆ sPds

dsT

�=

ou u

Tdu

dsR ˆ=�

)(uss =

Rdu

ds �=

Parâmetro de comprimento:

uParâmetro genérico:

Page 13: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 13

Requisitos da parametrização

P0

P1

P(u)10)1()( PuPuuP���

+−=

10 )())(1()( PufPufuP���

+−=

(1-u)

ua

(1-f(u)) f(u)

ubua

ub0

1

0)( =uPdu

d �

)()( 1212 ususuuSe >⇒>

u

Continuidade Geométrica e

Paramétrica

Descontínua Contínua: C0 e G0

)1()0( 21 RR��

=

Contínua: C1 e G1

)1()0( 21 TT��

=

C0 e G1

)1()0( 21 RR��

Geométrica

)1()0( 21 TT��

C1 e G0

1 2(0) (1)R R=� �

Paramétrica

Page 14: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 14

Curvas de Bézier

P. de Casteljau, 1959 (Citroën)

P. de Bézier, 1962 (Renault) - UNISURF

Forest 1970: Polinômios de Bernstein

iin

ni tti

ntB −−

= )1()(,

∑=

=n

i

ini VtBtP0

, )()(��

x

P(t)

y

z

t=0

t=1

V0

V1

V2

V3

Vn-1

Vn onde:

)!(!

!

ini

n

i

n

−=

coef. binomial

pol. Bernstein

Bézier Cúbicas

3003

3,0 )1()1(0

3)( ttttB −=−

= −

x

P(t)

∑=

=3

0

3, )()(i

ii VtBtP��

y

z

V0

V1

V2

V3

tttttB2113

3,1 )1(3)1(1

3)( −=−

= −

2223

3,2 )1(3)1(2

3)( tttttB −=−

= −

3333

3,3 )1(3

3)( ttttB =−

= −

=∑i

i tB )(3,[ ] 1)1(

3=+− tt

3

3

2

2

1

2

0

3 )1(3)1(3)1()( VtVttVttVttP�����

+−+−+−=

Page 15: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 15

Polinômios Cúbicos de Bernstein

1

10 t

B0,3

(1-t)3

3

10 t

B1,3

3(1-t)2t

1

10 t

B3,3

t3

10 t

B2,3

3(1-t) t2

-3

1

10 t

B0,3 + B1,3 + B2,3 + B3,3

Propriedades da Bézier Cúbica

3

3

2

2

1

2

0

3)1(3)1(3)1()( VtVttVttVttP

�����+−+−+−=

[ ] [ ]3

3

2

2

1

2

0

2 )1(63)1(3)1(6)1(3)( VtVtttVtttVttPdt

d �����+−+−+−+−−+−−=

0)0( VP��

=

3)1( VP��

=

10 33)0( VVPdt

d ���+−=

32 33)1( VVPdt

d ���+−=

x

P(t)

y

z

V0

V1

V2

V3

R(0)

R(1)

Page 16: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 16

Controle da Bézier Cúbica

Fecho Convexo

1)(00

== ∑∑==

n

i

i

n

i

ii comVtP αα��

Page 17: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 17

Demonstração

Indução

1)( 101100 =++= αααα VVtP���

� ok

n=1

1)()()(

)()(

1)(

210221

10

10

10

010

210221100

=+++

++

++=

=++++=

αααααα

α

αα

ααα

αααααα

VVVtP

VVVtP

����

����

)(tP�

é interior � ok

n=2

n=3

...

Equação do Foley

−−

−−

=

zyx

zyx

zyx

zyx

VVV

VVV

VVV

VVV

ttttP

333

222

111

000

23

0001

0033

0363

1331

1)(�

)(tP�

0V�

1V� 2V

3V�

3

3

2

2

1

2

0

3 )1(3)1(3)1()( VtVttVttVttP�����

+−+−+−=

Page 18: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 18

Redução de n=3 para n=2

3

3

2

2

1

2

0

3)1(3)1(3)1()( VtVttVttVttP

�����+−+−+−=

10

1

0 )1()( VtVttV���

+−=

21

1

1 )1()( VtVttV���

+−=

32

1

2 )1()( VtVttV���

+−=

1

2

21

1

1

0

2 )1(2)1()( VtVttVttP����

+−+−=

[ ] [ ][ ]32

2

2110

2

)1(

)1()1(2)1()1()(

VtVtt

VtVtttVtVtttP��

�����

+−+

+−−++−−=

)(1

0 tV�

)(1

1 tV�

)(1

2 tV�

Bezier n=2

Redução de n=2 para n=1

1

1

1

0

2

0 )1()( VtVttV���

+−=

1

2

21

1

1

0

2 )1(2)1()( VtVttVttP����

+−+−=

[ ] [ ]1

2

1

1

1

1

1

0 )1()1()1()( VtVttVtVtttP�����

+−++−−=

Bezier n=1

1

2

1

1

2

1 )1()( VtVttV���

+−=

1

1

2

0)1()( VtVttP���

+−=

1

0V�

1

1V�

1

2V�

2

0V�

2

1V�

)(tP�

Page 19: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 19

Cálculo de um Ponto

1

0V�

1

1V�

1

2V�

2

0V�

2

1V�

)(tP�

0V�

1V�

2V�

3V�

1

1V�

1

0V�

1

2V�

2

0V�

2

1V� )(tP

(1-t)

t

)()()1()( 1,11,, tBttBttB ninini −−− +−=Mostre que:

0V�

1V� 2V

3V�

Subdivisão de Bézier Cúbicas

=

3

2

1

0

3

2

1

0

1331

0242

0044

0008

8

1

V

V

V

V

V

V

V

V

L

L

L

L

=

3

2

1

0

3

2

1

0

8000

4400

2420

1331

8

1

V

V

V

V

V

V

V

V

R

R

R

R

1012

1

2

1VVV

L���

+=

. . .L

V1

H�

00 VVL��

=

1V�

2V�

LV2

RL VV 03

��=

RV1

RV2

33 VV R��

=

Page 20: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 20

Construção de uma Bezier

u=1/2

P(1/2)

Curve fitting

3

3

2

2

1

2

0

3)1(3)1(3)1()( VtVttVttVttP

�����+−+−+−=

[ ] [ ]3

2

2

2

1

2

0

2 33)1(6)1(6)1(3)1(3)( VtVtttVtttVttPdt

d �����+−−+−−−+−−=

3

2

2

2

1

2

0

23)23(3)143(3)1(3 VtVttVttVt����

++−++−+−−=

3

2

2102

2

3)26(3)46(3)1(6)( VtVtVtVttPdt

d �����++−+−+−=

( )2102102

2

266126)0( VVVVVVPdt

d �������+−=+−=

( )3213212

2

266126)1( VVVVVVPdt

d �������+−=+−=

( )0110

2 333)0( VVVVPdt

d �����−=+−=

( )2332

2 333)1( VVVVPdt

d �����−=+−=

Page 21: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 21

Nova notação

0V

1−ncp

2−ncr

0p

1p

2p

2−ncp

0r

1r

2r

1−ncl

2l

1l

2−ncl

1V

2V

3V

4V

5V 6V 7V

4−nVnV1−nV3−nV 2−nV

Derivadas na nova notação

1

3

1

223)1(3)1(3)1()( ++ +−+−+−= iiiii tttttttP plrp

( )12

2

26)0( ++−= iiiiPdt

dlrp

( )112

2

26)1( ++ +−= iiiPdt

dplr

( )iiiPdt

dpr −= 3)0(

( )113)1( ++ −= iiiPdt

dlp

x

y

z

)(tPi

ip

ir

1+il

1+ip

Page 22: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 22

Construção de uma curva que passa

por 2 pontos

n=2

0)0('' =P�

0)1('' =P

0p

1p

0r

1l

( ) 026 100 =+− lrp

( ) 026 110 =+− plr

( )0103

1ppr −=

( )0113

2ppl −=

Construção de uma curva que passa

por 3 pontos

0p

0r

2p

1r

1p1l

2l

02 100 =+− lrp

0)0(''0 =P�

0)1(''1 =P�

0�

1�

02 221 =+− plr

111)1( prl =+− ρρ

10

0

��

+=ρ

=

−−

2

1

0

2

1

1

0

0

2100

1221

0)1(0

0012

p

p

p

l

r

l

r

ρρ

)0('')1('' 10 PP��

=

211110 22 lrpplr +−=+−

Page 23: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 23

Método construtivo: dados n pontos

acrescentar mais um

0p

1p

1−np

np

1+np

0r

1r

nr

1−nr

1+nl

1−nl

1l

nl

10

0

��

+=ρ

nnn prl =+− ρρ )1(

11 22 +− +−=+− nnnnnn lrpplr

02 11 =+− ++ nnn plr

−=

−−

+

+ 1

1

1210

122

0)1(

n

n

n

n

n

n

p

r

p

l

r

lρρ

Interpolação: dados p0…pn , encontre l’s e r’s

1p

1−np

np

1+np

0r

1r

nr

1−nr

1+nl

1−nl

1l

nl

0p

Page 24: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 24

0d

1d

2d2−npd

Bezier interpolation

0p

1p

2p

2−npp

1−npp

0r

1r

2−npr

2r

1−npl

2l

1l

2−npl

Given: np points

110 ,,, −npppp �

Find: 2(np-1) points

121 ,,, −nplll �

210 ,,, −nprrr �

Criteria:

0'' 0 =p ⇒ ( ) 026 100 =+− lrp ⇒0102 pr =−l

0'' 1 =−npp ⇒ ( ) 026 112 =+− −−− npnpnp l pr ⇒ 112 2 −−− =+− npnpnp l pr

rightiileftii dd '' 1pp −= ⇒ ( ) ( )iiiiii dld prp −=− −133 ⇒ iiiiiii dddld pr )( 11 +=+ −−

rightilefti '''' pp = ⇒ ( ) ( )iiiiii ll +−=+− −− 11 2626 rppr ⇒ 022 11 =+−+− −− iiii ll rr

Bezier interpolation Criteria:

0102 pr =−l

112 2 −−− =+− npnpnp l pr

iiiiiii dddld pr )( 11 +=+ −−

022 11 =+−+− −− iiii ll rr

+

+

+

=

−−

−−

−−

−−−

−−−

1

223

221

110

0

1

2

2

2

2

1

1

0

12

12

01

0

)(

0

)(

0

)(

21000000

12210000

000000

00122100

000000

00001221

000000

00000012

n

nnn

nc

nc

ncnn dd

dd

dd

l

l

l

l

dd

dd

dd

p

p

p

p

p

r

r

r

r

2−npr

0d

1d

2d2−npd

0p

1p

2p

2−npp

1−npp

0r

1r

2r

1−npl

2l

1l

2−npl

resulting linear system:

solve for l and r

Page 25: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 25

B-Splines

• vértices

+ nós

0V�

1V�

2V�

3V� 4V

nV�

+

+ +

+

+ +

••

)(uP�

i

n

i

pi VuNuP��

∑=

=0

, )()(

)()(

)()(

)(

)()( 1,1

11

1

1,, uNuu

uuuN

uu

uuuN pi

ipi

pi

pi

ipi

ipi −+

+++

++

+ −

−+

−=

.10

0:. definiçãoporobs =

p = grau do polinômio Ni,p(u)

controla a continuidade ( Cp-1 )

u0 ≤ u1 ≤ u2 ≤ … ≤ um

=+

contráriocaso

uuuseuN

ii

i0

)[1)(

1

0,

U={u0, u1, ..., um}

m=n+p+1

u0 u2 ui ui+1 um... u

Ni,0(u)

u1...

ui = nós (knots)

[ui,ui+1] = trechos (spans)

Propriedades de Ni,p(u)

• Não negativa: Ni,p(u)≥0 para qualquer u, i, e p.

• Partição da unidade: ∑ Ni,p(u)=1 para todo u∈[u0,um].

• Suporte local: Ni,p(u)=0 se u∉[ui, ui+p+1]. Mais ainda, in qualquer intervalo dos nós no máximo p+1 das Ni,p(u) são não zero.

• Diferenciabilidade: todas as derivadas de Ni,p(u)existem no interior de um intervalo de nós (onde é polinômial) . Nos nós Ni,p(u) é p-k diferenciável, onde ké a multiplicidade do nó.

• Extremo: exceto para o caso p=0, Ni,p(u) tem apenas um ponto de máximo.

Page 26: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 26

Spline Uniforme

)())1((

)()(

)( 1,11,, uNpd

udpuuN

pd

uuuN pi

i

pi

i

pi −+−

−+++

−=

uj+1- uj =d

)()(

)()(

)(

)()( 1,1

11

1

1,, uNuu

uuuN

uu

uuuN pi

ipi

pi

pi

ipi

ipi −+

+++

++

+ −

−+

−=

Splines Uniformes

p=0 e p=1

∈=

+

+

)[0

)[1)(

1

1

0,

ii

ii

iuuuse

uuuseuN

p=0

0 ui-d ui ui+d n...

Ni,0(u)

...

p=1

( )

∈−+

∈−

=

+

++

+

][0

)[)2(

)[

)0[0

)(

2

21

1

1,

mi

ii

i

ii

i

i

i

uuuse

uuused

udu

uuused

uu

uuse

uN

)()2(

)()(

)( 1,11,1, uNd

uduuN

d

uuuN pi

ipi

ii −+−

−++

−=

Ni,2(u)

ui-d uiui+d ui+2d

Page 27: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 27

Splines Uniformes

p=2

Ni,1(u) Ni+1,1(u)Ni-1,1(u)

∈−+

∈+−−++−+−

∈−

=

+

++

++

+

],[0

),[2

)3(

),[2

))()(3()2)((

),[2

)(

),0[0

)(

3

322

2

212

12

2

2,1

mi

ii

i

ii

iiii

ii

i

i

uuuse

uuused

udu

uuused

duuuduuduuu

uuused

uu

uuse

uN

ui-d uiui+d ui+2d ui+3d

p=2)(

2

)3()(

2

)()( 1,11,2, uN

d

uduuN

d

uuuN i

ii

ii +

−++

−=

Polinômios da B-Spline Uniforme

u ui ui+d ui+2d ui+3d ui+4d

Ni,0 (u) 0 1 0 0 0 0

Ni+1,0 (u) 0 0 1 0 0 0

Ni,1 (u) 0 (u-ui) (ui+2d-u) 0 0 0

Ni+1,1 (u) 0 0 (u-(ui+d)) (ui+3d-u) 0 0

Ni,2 (u) 0 (u-ui)2/2d

2 (u-ui)(ui+2d-u)/2d2 +

(ui+3d-u)(u-(ui+d))/2d2 (ui+3d-u)

2/2d

20 0

Ni+1,2 (u) 0 0 (u-(ui+d))2/2d

2 (u-(ui+d))(ui+3d-u)/2d2 +

(ui+4d-u)(u-(ui+2d))/2d2 (ui+4d-u)

2/2d

20

Ni,3 (u) 0 (u-ui)3/6d

3

[(u-ui)2(ui+2d-u) +

(u-ui)(ui+3d-u)(u-(ui+d))

+(ui+4d-u)(u-(ui+d))2 ]

/6d3

[(u-ui) (ui+3d-u)2 +

(ui+4d-u)(u-(ui+d))(ui+3d-u)

+ (ui+4d-u)2(u-(ui+2d))]/6d

2(ui+4d-u)

3/6d

30

t t=(u-ui)/d t = (u-(ui+d))/d t = (u-(ui+2d))/d t=(u-(ui+3d))/d

Ni,3 (t) 0 t6/6 (-3t

3+3t

2+3t+1)/6 (3t

3-63t

2+4)/6 (1-t)

3/6 0

)())1((

)()(

)( 1,11,, uNpd

udpuuN

pd

uuuN pi

i

pi

i

pi −+−

−+++

−=

Page 28: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 28

Segmentos da B-spline cúbica

p(t)

0,0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,0 0,2 0,4 0,6 0,8 1,0t

t3/6

(-3t3+3t2+3t+1)/6(3t3-6t2+4)/6

(1-t)3/6

Funções da base

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

u1 u2 u3 ... um-4u0uum-3 um-2

N0,3(u) N2,3(u)N-1,3(u) ...

t

2

3

1

2323

1

3

66

1333

6

463

6

)1()( ++− +

+++−+

+−+

−= iiiii V

tV

tttV

ttV

ttP

�����

For i = 0, ..., n

For t = 0, ..., 1

Nn-1,3(u)

um-1 um

N1,3(u)

i=0

t

i=1

t

i=n

Nn,3(u) Nn+1,3(u)

Page 29: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 29

B-Spline Periódica

- Foley -

−−

=

+++

+++

−−−

ziyixi

ziyixi

ziyixi

ziyixi

VVV

VVV

VVV

VVV

ttttP

,3,3,3

,2,2,1

,,,

,1,1,1

23

0141

0303

0363

1331

1)(�

Para cada par Vi, Vi+1 , i=0,...,n

Para cada t=0,...,1

Periódica:

i=0, ... , n

V-1 = Vn

Vn+1 = V0

Vn+2 = V1

Vn+1= V0 Vn+2 =V1

V2

V3

V4

V-1= Vn

B-Spline Não Periódica

- Foley -

• vértices

+ nós

0V�

1V�

2V�

3V� 1−nV

nV�

+

++

+

+ +

••

i=0

i=1 i=2

i=3

1V�

i=n-1 1−nV�

1−nV�

i=0

P(0) = (V-1+ 4V0+ V1)/6

P’’(0) = V-1 -2V0+ V1 = 0

⇒ V-1 = 2V0 - V1

i=0; P(0) = V0

i=n-1

P(1) = (Vn-1+ 4Vn+ Vn+1)/6

P’’(1) = Vn-1-2Vn+ Vn+1

⇒ Vn+1 = 2Vn - Vn-1

i=n-1; P(1) = Vn

Page 30: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 30

Base Periódica

B-Spline Cúbica Uniforme Periódica

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.0 0.2 0.4 0.6 0.8 1.0

u

N(u

,i,p

)

N(u,0,3)

N(u,1,3)

N(u,2,3)

N(u,3,3)

N(u,4,3)

N(u,6,3)

N(u,7,3)

U ={0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}

V-1= V7

V8= V0

V9= V1

V2 V3

V4

V-3=V5

V-2= V6

i=0

i=1

i=2

i=3i=4

i=5

i=6

i=7

Base Não Periódica

B-Spline Cúbica Uniforme e Aperiódica

0.0

0.2

0.4

0.6

0.8

1.0

0.0 0.2 0.4 0.6 0.8 1.0

u

N(u

,i,p

)

N(u,0,3)

N(u,1,3)

N(u,2,3)

N(u,3,3)

N(u,4,3)

N(u,6,3)

N(u,7,3)

U= {0, 0, 0, 0, 1/4, 2/4, 3/4, 1, 1, 1, 1}

Page 31: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 31

Bézier e B-Spline

Bézier através da B-Spline Cúbica

U ={0,0,0,0,1,1,1,1}

0.0

0.2

0.4

0.6

0.8

1.0

0.0 0.2 0.4 0.6 0.8 1.0

u

N(u

,i,p

)

N(u,0,3)

N(u,1,3)

N(u,2,3)

N(u,3,3)

B-Spline Periódica

- Interpolação -

Vn+1= V0 Vn+1 =V1

V2

V3

V4

V-1= Vn

Para i=0,..., n

Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6;

P0(0) P1(0)

P2(0)

P3(0)

P4(0)

Pn(0)

Considere os nós

como os pontos dados

=

nn P

P

P

P

P

P

V

V

V

V

V

V

4

3

2

1

0

4

3

2

1

0

410001

141000

014100

001410

000141

100014

6

1

• vértices

+ nós

Page 32: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 32

B-Spline Não Periódica

- Foley -

• vértices

+ nós

0V�

1V�

2V�

3V� 1−nV

nV�

+

++

+

+ +

••

i=0

i=1 i=2

i=3

1V�

i=n-1 1−nV�

1−nV�

P0 = V0 ; Pn = Vn ;

Para i=1,..., n-1

Pi(0) = (Vi-1+ 4Vi+ Vi+1)/6;

Considere os nós

como os pontos dados

=

nn P

P

P

P

P

P

V

V

V

V

V

V

4

3

2

1

0

4

3

2

1

0

100000

141000

014100

001410

000141

000001

6

1

Funções Racionais

]1,0[

1

2,

1

1)(

22

2

++

−=

u

u

u

u

uuP�

2

2

2

1

1)cos(

1

2)sin(

)2/tan(

u

u

u

u

u

+

−=

+=

=

α

α

αDa trigonometria:

0

0.2

0.4

0.6

0.8

1.0

0.2 0.4 0.6 0.8 1.0

Page 33: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 33

Cônicas

cbtat

etdtx

cbtat

edty

eydtycybtyyat

tyx

eydxcybxyax

++

+−=

++

+−=

=++++

=

=++++

2

2

2

2222

22

0

0

x

y

cônica qualquer escrita num sistema de

eixos cuja origem é um ponto da cônica

Qualquer cônica pode ser representada parametricamente

como uma fração de polinômios quadráticos

NURBS

Non Uniform Rational B-Splines

yh

xh

w

w=1

x

y

=

∑=

i

ii

ii

ii

n

i

pi

w

zw

yw

xw

uN

uw

uzuw

uyuw

uxuw

0

, )(

)(

)()(

)()(

)()(

∑∑=

=

=

n

i

i

i

i

n

k

pkk

pii

z

y

x

uNw

uNw

uz

uy

ux

0

0

,

,

)(

)(

)(

)(

)(

∑∑=

=

=

=

n

in

k

pkk

pii

pi

i

i

i

pi

uNw

uNwuRonde

z

y

x

uR

uz

uy

ux

0

0

,

,

,,

)(

)()()(

)(

)(

)(

Page 34: Curvas e Superfícies - webserver2.tecgraf.puc-rio.br · esfera. Equações da forma f(x, y) ... de distinguir facilmente entre o interior e o exterior de uma ... possuem parametrização

CIV 2802 - Sistemas Gráficos para Engenharia - PUC-Rio

Curvas e Superfícies - Parte 1 34

Cônicas como NURBS

}1,1,1,0,0,0{)()(

:

)()()(

)()()()(

2,2,

22,212,102,0

222,2112,1002,0

==

++

++=

UcomuNuB

onde

wuBwuBwuB

VwuBVwuBVwuBuP

ii

����

0V�

2V�

1V�

w0=1

w1=s/(1-s)

w2=1w1=0

0.2

-0.2

1

3

sElipse (w1<1)

Parábola (w1=1)

Hipérbola (w1>1)

Faux et al.

w0w2 /w1 - determina a cônica

0V�

2V�

1V�

w0=1

w1=s/(1-s)

w2=1w1=0

0.2

-0.2

1

3

sElipse (w1<1)

Parábola (w1=1)

Hipérbola (w1>1)

S�

M�

1

21

)1(

)(

VsMsS

eSP���

��

+−=

=

Círculo através de NURBS

U={0, 0, 0, 1/4, 1/4, 1/2, 1/2, 3/4, 3/4, 1, 1, 1}{ } }1,2

2,1,

2

2,1,

2

2,1,

2

2,1{=w

∑∑=

=

=

=

8

08

0

2,

2,

2,2,

)(

)()()(

)(

)(

i

k

kk

ii

i

i

i

i

uNw

uNwuRonde

y

xuR

uy

ux

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

n=8

p=2

m=12

(x0 , y0)

(x1 , y1)(x2 , y2)(x3 , y3)

(x4 , y4)

(x5 , y5)(x6 , y6)

(x7, y7)

(x8 , y8)