representação de curvas -...

67
Representação de Curvas Baseado em material preparado por Marcelo Gattass – Depto. de Informática – PUC-Rio (adaptado para a disciplina CIV2802) CIV2802 –Sistemas Gráficos para Engenharia 2018.1 Luiz Fernando Martha André Pereira

Upload: phungbao

Post on 10-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Representação de Curvas

Baseado em material preparado por

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

(adaptado para a disciplina CIV2802)

CIV2802 – Sistemas Gráficos para Engenharia

2018.1

Luiz Fernando Martha

André Pereira

Page 2: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 3: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Ao estudar geometria analítica, é comum 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

Page 4: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 5: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 6: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 7: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 8: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 9: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 10: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 11: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 12: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 13: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 14: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 15: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

• Linhas

• Beziers

• B-Splines

• NURBS

• Outros tipos especiais de curvas:

Poli-linhas, arcos de círculo e arcos

de elipses

Page 16: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 1: Independência de eixos

x

y

Page 17: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 2: Valores Múltiplos

x

y

Page 18: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 3: Controle Local

x

y

Page 19: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 4: Pouca Oscilação

polinômio de grau elevado

Page 20: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 5: Versatilidade

Page 21: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Curvas

Requisito 6: Amostragem Uniforme

∆s1

∆s2

∆s3

∆s4

∆sn

∆si ≈ ∆sj

Curvas – Requisito 7:

Formulação matemática tratável

Finalizando:

Page 22: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 u

2un

zzzz

yyyy

xxxx

dtctbtatz

dtctbtaty

dtctbtatx

+++=

+++=

+++=

23

23

23

)(

)(

)(

continuidade no

ponto comum dos

trechos

Page 23: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 24: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 25: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 26: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 27: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

tttttB 2113

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 28: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 29: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 30: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Controle da Bézier Cúbica

Page 31: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Fecho Convexo

1)(00

== ∑∑==

n

i

i

n

i

ii comVtP αα��

Page 32: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

...

Page 33: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 34: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 35: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 36: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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�

Page 37: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 38: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

Construção de uma Bezier

u=1/2

P(1/2)

Page 39: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

2 3)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 40: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 41: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 42: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 −=

Page 43: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 44: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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ρρ

Page 45: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 46: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 47: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 48: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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)

Page 49: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 50: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 −+

+++

++

+ −

−+

−=

Page 51: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 ui ui+d ui+2d

Page 52: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 ui ui+d ui+2d ui+3d

p=2)(

2

)3()(

2

)()( 1,11,2, uN

d

uduuN

d

uuuN i

ii

ii +

−++

−=

Page 53: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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/2d2

0 0

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

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

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

[(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))]/6d2

(ui+4d-u)3/6d3 0

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 (-3t3+3t2+3t+1)/6 (3t3-63t2+4)/6 (1-t)3/6 0

)())1((

)()(

)( 1,11,, uNpd

udpuuN

pd

uuuN pi

i

pi

i

pi −+−

−+++

−=

Page 54: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 55: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 56: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 57: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 58: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

1

, , 1 1, 1

1 1

( )( )( ) ( ) ( )

( ) ( )

i pii p i p i p

i p i i p i

u uu uN u N u N u

u u u u

+ +

− + −

+ + + +

−−= +

− −

Page 59: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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}

1

, , 1 1, 1

1 1

( )( )( ) ( ) ( )

( ) ( )

i pii p i p i p

i p i i p i

u uu uN u N u N u

u u u u

+ +

− + −

+ + + +

−−= +

− −

Page 60: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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)

1

, , 1 1, 1

1 1

( )( )( ) ( ) ( )

( ) ( )

i pii p i p i p

i p i i p i

u uu uN u N u N u

u u u u

+ +

− + −

+ + + +

−−= +

− −

Page 61: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 62: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 63: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 64: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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

Page 65: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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 66: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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���

��

+−=

=

Page 67: Representação de Curvas - webserver2.tecgraf.puc-rio.brwebserver2.tecgraf.puc-rio.br/ftp_pub/lfm/CIV2802-RepresentacaoCur... · esfera. Equações da forma f(x, y) ... de distinguir

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)