representação de curvas e superfíciesaas/pub/aulas/cg/slides/10_curvsuperf.pdf · – obter...

38
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO COMPUTAÇÃO GRÁFICA E INTERFACES/ SISTEMAS GRÁFICOS JGB/AAS 2004 1 Representação de Curvas e Superfícies Sistemas Gráficos/ Computação Gráfica e Interfaces

Upload: vulien

Post on 16-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

1

Representação de Curvas e Superfícies

Sistemas Gráficos/Computação Gráfica e Interfaces

Page 2: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

2

Representação de Curvas e SuperfíciesRepresentação de superfícies : permitem descrever objectos através das

suas faces. As três representações mais comuns são:– Malha poligonal– Superfícies paramétricas bicúbicas– Superfícies quadráticas

Representação paramétricas de curvas : importantes na computação gráfica 2D e pelo facto das superfícies paramétricas serem uma generalização destas curvas.

“Tea-pot” modelado por superfícies curvas suaves (bicúbicas).

Modelo de referência na Computação Gráfica, nomeadamente para teste de novas técnicas de realismo de textura e superfície.Criado por Martin Newel (1975)

Page 3: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

3

Malha Poligonal

Malha Poligonal : é uma colecção de arestas, vértices e polígonos interligados de modo que cada aresta é apenas partilhado no máximo por dois polígonos.

Curva �� linha poligonalSecção de um objecto curvo.O erro de aproximação pode ser reduzindo aumentando o número de polígonos.

Objecto 3D representado por malha de polígonos.

Page 4: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

4

Malha Poligonal

Características da malha poligonal:– Uma aresta liga 2 vértices.– Um polígono é definido por uma sequência fechada de arestas.– Uma aresta é partilhada por 1 ou 2 polígonos adjacentes.– Um vértice é partilhado pelo menos por 2 arestas.– Todas as arestas fazem parte de algum polígono.

A estrutura de dados para representar a malha poligonal pode ter várias configurações, que são avaliadas pelo espaço de memória e tempo de processamento necessário para obter resposta, por exemplo, a:

– Obter todas as arestas que se unem num dado vértice.– Determinar os polígonos que partilham uma aresta ou um vértice.– Determinar os vértices ligados a uma aresta.– Determinar as arestas de um polígono.– Representar graficamente a malha.– Identificar erros na representação, como falta de uma aresta, vértice ou polígono.

Page 5: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

5

Malha Poligonal

1. Representação Explicita: cada polígono é representado por uma lista de coordenadas dos vértices que o constituem.Uma aresta é definida por dois vértices consecutivos e entre o último e primeiro da lista.

(x1,y1,z1)

(x2,y2,z2) (x3,y3,z3)

(x4,y4,z4)

P=((x1,y1,z1),(x2,y2,z2), ..., (xn,yn,zn))

Avaliação da estrutura de dados:– Consumo de memória (vértices repetidos).– Não há uma representação explicita das

arestas e vértices partilhados.– Na representação gráfica a mesma aresta é

“clipped” e desenhada mais do que uma vez.

– Ao arrastar um vértice é necessário conhecer todas as arestas que partilham aquele vértice.

4x

3x

Page 6: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

6

Malha Poligonal

2. Representação por Apontadores para Lista de Vért ices: cada polígono é representado por uma lista de índices (ou apontadores) para uma lista de vértices.

V=((x1,y1,z1),(x2,y2,z2), ..., (xn,yn,zn))Lista de Vértices

Vantagens : – Cada vértice da malha poligonal é guardado uma única vez na memória.– A coordenada de um vértice é facilmente alterada.

Desvantagens:– Difícil obter os polígonos que partilham uma dada aresta.– As arestas continuam a ser “clipped” e desenhada mais do que uma vez.

V=(V1,V2,V3,V4)=(x1,y1,z1),(x2,y2,z2), ..., (x4,y4,z4))

P1=(1,2,4)

P2=(4,2,3)

Page 7: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

7

Malha Poligonal

3. Representação por Apontadores para Lista de Ares tas: cada polígono é representado por uma lista de apontadores para uma lista de arestas, na qual cada aresta aparece uma única vez. Por sua vez, cada aresta aponta para os dois vértices que a definem e guarda também quais os polígonos a que pertence.

Um polígono é representado por P=(E1,E2,...,En) e uma aresta como E=(V1,V2,P1,P2). Se a aresta pertence apenas a um polígono então P2 é null.

Page 8: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

8

Malha PoligonalVantagens :

– O desenho gráfico é facilmente obtido percorrendo a lista de arestas. Não ocorre a repetição de clipping nem de desenho.

– Para o preenchimento (colorir) dos polígonos trabalha-se com a lista de polígonos. Fácil efectuar a operação de clipping sobre os polígonos.

Desvantagens:– Continua a não ser imediato determinar quais as arestas que incidem sobre o

mesmo vértice.

Solução de Baumgart

• Cada vértice tem um apontador para uma das arestas (aleatório) que incide nesse vértice.

• Cada aresta apresenta apontadores para as arestas que incidem num vértice.

Page 9: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

9

Curvas Cúbicas

Motivação : Representar curvas suaves do mundo real.

• A representação por malha poligonal é uma aproximação de primeira ordem:

– A curva é aproximada por uma sequência de segmentos lineares.– Grande quantidade de dados (vértices) para obter a curva com precisão.– Difícil manipulação para mudar a forma da curva, i.e. necessário

posicionar vários pontos com precisão.

• Geralmente utilizam -se polinómios de grau 3 (Curvas Cúbicas), sendo a curva completa formada por um conjunto de c urvas cúbicas.

– grau < 3 oferecem pequena flexibilidade no controlo da forma das curvas e não permitem uma interpolação entre dois pontos com a definição da derivada nos pontos extremos. Um polinómio de grau 2 é especificado por 3 pontos que definem o plano onde a curva toma lugar.

– grau > 3 podem introduzir oscilações indesejáveis e exigir maior cálculo computacional.

Page 10: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

10

Curvas Cúbicas

A representação das curvas é feita na forma PARAMÉT RICA:

x = fx(t), y = fy(t) ex: x=3t3 + t2 y=2t3+t

A forma Explicita: y=f(x) ex: y=x3+2x2

1. Não podemos ter vários valores de y para o mesmo x2. Não podemos descrever curvas com tangentes verticais

A forma Implícita: f(x,y)=0 ex: x2+y2-r2 = 01. Necessita de restrições para poder modelar apenas uma parte da curva2. Difícil juntar duas curvas de forma suave

Page 11: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

11

Curvas Cúbicas Paramétricas

A figura mostra uma curva formada por duas curvas cúbicas paramétricas em 2D.

Page 12: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

12

Curvas Cúbicas Paramétricas

Forma geral de representação da curva:

x(t)=axt3+bxt

2+cxt+dx

y(t)=ayt3+byt

2+cyt+dy

z(t)=azt3+bzt

2+czt+dz 0 ≤ t ≤ 1

Sendo:

=

zyx

zyx

zyx

zyx

ddd

ccc

bbb

aaa

C

[ ] CTtztytxtQ .)()()()( ==

[ ]123 tttT =

Page 13: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

13

Curvas Cúbicas Paramétricas

A representação anterior é usada para representar uma única curva. Como juntar os vários segmentos de curva ?

Pretendemos a junção num ponto � continuidade geométrica e,Que tenham o mesmo declive na junção � suavidade (continuidade da derivada).

A garantia de continuidade e suavidade na junção é garantida fazendo coincidir as derivadas (tangentes) das curvas no ponto de junção. Para isso calcula-se:

t

TC

t

CT

t

tz

t

ty

t

tx

t

tQ

∂∂=

∂∂=

∂∂

∂∂

∂∂=

∂∂ )()()()()(

[ ]0123 2 ttt

T =∂∂

Com:

Page 14: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

14

Curvas Cúbicas Paramétricas

Tipos de Continuidade:

G0 – continuidade geométrica zero � as curvas juntam-se num ponto.

G1 – continuidade geométrica um � a direcção dos vectores tangentes é igual.

C1 – continuidade paramétrica 1 � as tangentes no ponto de junção têm a mesma direcção e amplitude (primeira derivada igual).

Cn – continuidade paramétrica n � as curvas têm no ponto de junção todas as derivadas iguais até à ordem n.

Page 15: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

15

Curvas Cúbicas Paramétricas

Se considerarmos t como tempo , a continuidade C1 significa que a velocidade de um objecto que se desloque ao longo da curva se mantém contínua

A continuidade C2 implicaria que a aceleração seria também contínua.

No ponto de junção da curva S com as curvas C0, C1 e C2 temos:

Continuidade G0 entre S e C0

Continuidade C1 entre S e C1

Continuidade C2 entre S e C2

Page 16: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

16

Curvas Cúbicas Paramétricas

A continuidade paramétrica é mais restritiva que a continuidade geométrica:

Por exemplo: C1 implica G1

No ponto de junção P2 temos:

Q2 e Q3 são G1 com Q1

Só Q2 é C1 com Q1 (TV1=TV2)

Page 17: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

17

Curvas Cúbicas Paramétricas – Tipos de Curvas

1. Curvas de Hermite− Continuidade G1 nos pontos de junção− Vector geométrico:

• 2 pontos extremos e• Os vectores tangentes nesses pontos

2. Curvas de Bézier− Continuidade G1 nos pontos de junção− Vector geométrico:

• 2 pontos extremos e • 2 pontos que controlam os vectores tangentes nesses

extremos

3. Curvas Splines− Família de curvas muito alargada− Maior controlo da continuidade nos pontos de junção

(Continuidade C1 e C2)

P4

P1R4

R1 P3

P4

P1P2

Page 18: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

18

Notação comum

Matriz T

[ ] CTtztytxtQ .)()()()( ==

GMTtQ ..)( =

[ ]123 ttt

44434241

34333231

24232221

14131211

mmmm

mmmm

mmmm

mmmm

4

3

2

1

G

G

G

G

Matriz de Base Matriz Geométrica

Matriz de Base: Caracteriza o tipo de curva

Matriz Geométrica: Condiciona geometricamente uma dada curva e contém valores relacionados com a geometria da curva.

Page 19: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

19

Notação comum

Conclusão 1: Q(t) é uma soma pesada dos elementos do vector geométrico

GMTtQ ..)( =

[ ]

=

4

3

2

1

44434241

34333231

24232221

14131211

23 ..1)(

G

G

G

G

mmmm

mmmm

mmmm

mmmm

ttttQ

44434242

143

34333232

133

2232222

123

14131212

113

).().(

).().()(

GmtmmtmtGmtmmtmt

GmtmmtmtGmtmmtmttQ

+++++++

++++++++=

Conclusão 2: Os pesos são polinomiais cúbicas em t � FUNÇÕES DE MISTURA

GBGMTCTtQ ....)( ===(Blending functions)

Page 20: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

20

Curvas de Hermite

[ ] HHHHHH GBGMtttGMTtQ ...1..)( 23 ===

[ ] HH GMtttQ ..0123)(' 2=

Vector geométrico:

=

4

1

4

1

R

R

P

P

GH

[ ] 1..1000)0( PGMQ HH ==

[ ] 4..1111)1( PGMQ HH ==

[ ] 1..0100)0(' RGMQ HH ==

[ ] 4..0123)1(' RGMQ HH ==

HHH G

R

R

P

P

GM =

=

4

1

4

1

..

0123

0100

1111

1000

−−−−

=

=

0001

0100

1233

1122

0123

0100

1111

10001

HM

Page 21: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

21

Curvas de HermiteFunções de Mistura (Blending functions)

Q(t)= (2t3-3t2+1)P1 +

(-2t3+3t2)P4 +

(t3-2t2+t)R1 +

(t3-t2)R4

[ ] HHHHHH GBGMtttGMTtQ ...1..)( 23 ===

−−−−

=

0001

0100

1233

1122

HM

=

4

1

4

1

R

R

P

P

GH

Funções de Mistura das curvas de Hermite, referenciadas pelo elemento do vector geométrico que as multiplica, respectivamente.

Page 22: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

22

Curvas de Hermite - Exemplo

Esquerda : Funções de mistura pesadas pelo factor correspondente do vector geométrico.

Centro : y(t) = soma das quatro funções da esquerdaDireita : Curva de Hermite

Page 23: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

23

Curvas de Hermite - Exemplos

- P1 e P4 fixos- R4 fixo- R1 varia em amplitude

- P1 e P4 fixos- R4 fixo- R1 varia em direcção

Page 24: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

24

Curvas de HermiteExemplo de Desenho Interactivo

• Os pontos extremos podem ser reposicionados

• Os vectores tangentes podem ser alterados puxando as setas

• Os vectores tangentes são forçados a serem colineares (continuidade G1) e R4 é visualizado em sentido contrário (maior visibilidade)

• É comum dispor de comandos para forçar continuidade G0, G1 ou C1

Continuidade na junção:

4

1

4

1

R

R

P

P

7

4

7

4

.

R

RK

P

P

• K > 0 � G1

• K = 1 � C1

Page 25: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

25

Curvas de Hermite

Page 26: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

26

Curvas de Bézier

Vector Geométrico:

P3

P4

P1P2

=

4

3

2

1

P

P

P

P

GB

Para uma mesma curva, demonstra-se que, comparando com GH:

R1 = Q’(0) = 3.(P2 - P1)

R4 = Q’(1) = 3.(P4 – P3)

−−

=

=

4

3

2

1

4

1

4

1

.

3300

0033

1000

0001

P

P

P

P

R

R

P

P

GH

GH = MHB . GB

Page 27: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

27

Curvas de Bézier

• A mesma curva em representação Bézier: Q(t) = T . MB . GB

( ) ( ) BHBHBHBHHH GMMTGMMTGMTtQ ........)( ===

−−

−−

==

0001

0033

0363

1331

. HBHB MMM

Q(t)= (1-t)3 P1 +

3t(1-t)2 P2 +

3t2(1-t)P3 +

t3 P4

Page 28: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

28

Curvas de Bézier

Observações sobre as funções de Mistura: - Para t=0 Q(t)=P1 , para t=1 Q(t)=P4 � A curva passa em P1 e P4

- A soma em qualquer ponto é 1.

- Verifica-se que Q(t) é uma média pesada dos 4 pontos de controlo , logo a curva está contida no interior do polígono convexo (2D) ou poliedro convexo (3D) definido por esses pontos, designado de “convex hull”.

Que vantagem podemos extrair daqui ?

Q(t)= (1-t)3 P1 +

3t(1-t)2 P2 +

3t2(1-t) P3 +

t3 P4

Page 29: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

29

Curvas de BézierJunção de curvas de BézierContinuidade G1:

P4 – P3 = K(P5 – P4) com K > 0 i.e. P3,P4 e P5 devem ser colineares

Continuidade C1:P4 – P3 = K(P5 – P4) restringindo K =1

Page 30: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

30

Desenho de Curvas Cúbicas

Dois algoritmos: 1. Avaliação de x(t), y(t) e z(t) para valores incrementais de t entre 0 e 1.2. Subdivisão da curva: Algoritmo de Casteljau

1. Avaliação de x(t), y(t) e z(t)Regra de Horner permite reduzir o número de operações de 11 multiplicações e 10 adições para 9 e 10, respectivamente.

f(t) = at3 + bt2 + ct + d = ((at + b).t + c).t + d

2. Algoritmo de CasteljauEfectua a subdivisão recursiva da curva, parando apenas quando a curva em questão é suficientemente “plana” para poder ser aproximada por um segmento de recta.

Algoritmo eficiente: requer apenas 6 shifts e 6 adições em cada divisão.

Page 31: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

31

Desenho de Curvas Cúbicas - Algoritmo de Casteljau

Critérios possíveis de paragem:- A curva em questão é suficientemente “plana” para poder ser aproximada por um segmento de recta.- Os 4 pontos de controlo estão no mesmo pixel.

L2 = (P1+P2)/2, H=(P2+P3)/2, L3 = (L2+H)/2, R3 = (P3+P4)/2

R2 = (H+R3)/2, L4 = R1 = (L3 + R2)/2

Page 32: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

32

Desenho de Curvas Cúbicas

Algoritmo de Calteljau

void DrawCurveRecSub(curve,ε)

{ if (Straight(curve,ε))

DrawLine(curve);

else {

SubdivideCurve(curve, leftCurve, rightCurve);

DrawCurveRecSub(leftCurve, ε);

DrawCurveRecSub(rightCurve, ε);

}

}

Page 33: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

33

Exercício

Page 34: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

34

Superfícies Cúbicas

As superfícies cúbicas são uma generalização das curvas cúbicas. A equação da superfície é obtida a partir da equação da curva:

Q(t) = T . M . G, sendo G constante.

Mudar para a variável s: Q(s) = S . M . G

Fazendo variar os pontos do vector Geométrico em 3D ao longo de um percurso parametrizado por t obtém-se:

==

)(

)(

)(

)(

..)(..),(

4

3

2

1

tG

tG

tG

tG

MStGMStsQA matriz geométrica é composta por 16 pontos.

Page 35: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

35

Superfície de HermitePara a coordenada x:

x

HHxH

tR

tR

tP

tP

MStGMStsx

==

)(

)(

)(

)(

..)(..),(

4

1

4

1

x

Hx

g

g

g

g

MTtP

=

14

13

12

11

1 ..)(

x

Hx

g

g

g

g

MTtP

=

24

23

22

21

4 ..)(

x

Hx

g

g

g

g

MTtR

=

34

33

32

31

1 ..)(

x

Hx

g

g

g

g

MTtR

=

44

43

42

41

4 ..)(

TTHHx

TTH

x

TMGTM

gggg

gggg

gggg

gggg

tR

tR

tP

tP

....

)(

)(

)(

)(

24434241

24333231

24232221

14131211

4

1

4

1

=

=

Conclui-se que: TTHHxH TMGMStsx ....),( =

HxG

Page 36: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

36

Superfície de Hermite

Page 37: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

37

Superfície de Bézier

As equações para a superfície de Bézier podem ser obtidas da mesma forma que as de Hermite, resultando:

TTBBxB TMGMStsx ....),( =

TTBByB TMGMStsy ....),( =

TTBBzB TMGMStsz ....),( =

A matriz geométrica tem 16 pontos de controlo.

Page 38: Representação de Curvas e Superfíciesaas/pub/Aulas/CG/Slides/10_CurvSuperf.pdf · – Obter todas as arestas que se unem num dado vértic e. – Determinar os polígonos que partilham

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

COMPUTAÇÃO GRÁFICA E INTERFACES/SISTEMAS GRÁFICOS JGB/AAS 2004

38

Superfície de Bézier

Continuidade C0 e G0 é obtida fazendo coincidir os quatro pontos de controlo de fronteira: P14, P24, P34, P44

Para obter G1 devem ser colineares:P13, P14 e P15

P23, P24 e P25

P33, P34 e P35

P43, P44 e P45

e(P14-P13) / (P15 - P14) = K(P24-P23) / (P25 – P24) = K(P34-P33) / (P35 – P34) = K(P44-P43) / (P45 – P44) = K