formas e modelos geométricos - universidade de...

Post on 21-Nov-2018

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Formas e Modelos Geométricos

Antonio L. BajuelosDepartamento de Matemática

Universidade de Aveiro

2

Representação Tridimensional IntroduçãoIntrodução

Os factos: Os objectos do mundo físico possuem formas altamente

diversificadas. Seria impossível criar um programa gráfico que contivesse cada

uma destas possíveis formas. O que podemos fazer:

Desenvolver recursos que permitam a construção de um objecto qualquer a partir de primitivas e propriedades comuns entre os objectos.

Um par de exemplos: A geração de polígonos permite representar uma série de

objectos com forma euclidiana, que vão desde esferas, elipsóides e toros até pirâmides e edifícios.

Objectos naturais como montanhas, nuvens, árvores, folhas, flores e relva podem ser modelados através de fractais.

3

Representação Tridimensional Introdução (cont…)Introdução (cont…)

Mas como? A representação tridimensional pode ainda ser realizada

de duas maneiras distintas: através da representação de fronteira –

os objectos são descritos como um conjunto de superfícies que separam seu interior do meio-ambiente (exterior);

através da representação de subdivisão de espaço – os objectos são representados através das propriedades de

cada ponto no seu interior. Este tipo de representação é utilizado quando deseja-se

analisar o interior de objectos, como por exemplo o corpo humano.

4

Representação TridimensionalSuperfícies poligonais A forma mais comum de representação tridimensional é

através de um conjunto de superfícies poligonais que delimitam o interior de um objecto.

O software gráfico geralmente traduz a descrição do objecto em termos de superfícies poligonais.

Motivação: Polígonos são peças de aproximação de curvas reais Numa superfície curva quanto mais aproximações tivermos, mais

perfeita é a modelação da superfície real Pequenos segmentos (curvos ou rectos) aproximam da curva real

5

Representação TridimensionalSuperfícies poligonais Vantagem fundamental da utilização das superfícies

poligonais para a representação de curvas: A vantagem deste método é que as superfícies planas formadas

permitem um tratamento através de equações lineares, o que acelera o cálculo.

Exemplo: Um poliedro pode ser facilmente representado por superfícies

poligonais como por exemplo o cubo, o icosaedro, o tetraedro.

6

Representação TridimensionalSuperfícies poligonais (cont…) Um polígono pertencente a um dado objecto é caracterizado pelo

conjunto de vértices que o constitui e pelos atributos da sua superfície, como por exemplo a reflectividade, a transparência, etc.

Uma das formas mais utilizadas na representação de superfícies poligonais é através de 3 tabelas, contendo respectivamente

uma lista de vértices

uma lista de arestas

uma lista de polígonos

A lista de arestas faz referência à tabela de vértices para definir todas as arestas do objecto.

De forma análoga, a tabela de superfície de polígonos utiliza a tabela de arestas para formar os elementos poligonais do objecto.

7

Representação TridimensionalSuperfícies poligonais (cont…) Exemplo:

8

Representação TridimensionalSuperfícies poligonais (cont…)

Observações: Uma outra forma de armazenar estas informações seria com somente

duas tabelas: a de vértices e a de polígonos. Neste caso, contudo, algumas arestas podem ser traçadas duas vezes.

Outra alternativa é manter apenas a tabela de polígonos, mas além de inviabilizar a apresentação da estrutura de arame, também aumenta a necessidade de memória pois cada vértice pode aparecer em vários polígonos.

9

Representação TridimensionalAproximação vs Interpolação A aproximação e interpolação de curvas através de uma

série de pontos dados constitui uma das mais poderosas ferramentas da computação gráfica.

Compromisso: Os pontos de uma superfície curva são discretos, então a

representação destas superfícies pode ficar comprometida pois a restituição da imagem apresenta geralmente as junções (picos) entre os polígonos que a constituem

Por outro lado, a redução do intervalo entre os pontos acarreta, além de um maior tempo de processamento da imagem, também uma dificuldade maior na armazenagem e na colecta dos pontos da superfície.

A determinação de tais superfícies constitui o processo denominado de aproximação e interpolação

10

Representação TridimensionalAproximação vs Interpolação (cont…) Quando a curva obtida passa obrigatoriamente por todos os pontos

dados, tem-se a interpolação (curve fitting), isto é:

pode-se obter as coordenadas de pontos intermediários entre dois

pontos quaisquer interpolando-se a curva neste intervalo.

Por outro lado, quando a curva “suaviza a rugosidade” dos pontos

sem necessariamente passar por nenhum deles (excepto, talvez, os

pontos das extremidades), então tem-se a aproximação (curve

fairing)

11

Representação TridimensionalAproximação vs Interpolação (cont…) Para assegurar a transição da curva entre os pontos,

utiliza-se de critérios de continuidade. Um critério de ordem zero estabelece que as curvas devem

encontrar-se num ponto. Um critério de primeira ordem garante que, além das curvas

encontrarem-se no ponto, as derivadas de ambos os segmento são também iguais neste ponto.

Um critério de segunda ordem faz com que também as segundas derivadas sejam iguais,

12

Representação TridimensionalAproximação vs Interpolação (cont…) Uma curva que ajusta (fit) –

A curva obtida passa por todos os pontos. Uma técnica usual de ajuste de curvas são os splines

cúbicas, uma estratégia de aproximação polinomial por partes.

No processo de aproximação - A curva obtida pode não passar por nenhum dos pontos

dados pelo que se diz que a curva aproxima (fair) os dados

Para esse caso, técnicas usuais são as representações de Bézier e B-Splines

13

Representação TridimensionalRepresentações não paramétricas Explicita:

Para uma curva plana, a forma não paramétrica explicita é dada por a seguinte equação: y = f(x)

Exemplo:

A equação de uma recta é dada por y = mx + b

Atenção: Curvas fechadas, ou com valores múltiplos, como um círculo, não podem ser representadas explicitamente.

Essa limitação não existe no caso de representações Implícitas, na forma f(x, y) = 0

14

Representação TridimensionalRepresentações não paramétricas (cont…) A equação implícita de segundo grau genérica:

ax2 + 2bxy +cy2 +2dx +2ey + f = 0

Engloba uma variedade de curvas bi-dimensionais denominadas secções cónicas.

Os três tipos de secções cónicas são: a parábola, a hipérbole e a elipse (um círculo é um caso especial de uma elipse).

Dependendo dos valores a, b, c, d, e e f, diferentes tipos de secções cónicas são produzidas.

15

Representação Tridimensional

Representações não paramétricas (cont…) Limitações desta representação:

Ambas (explícita e implícita) são dependentes do sistema de coordenadas.

Pontos em uma curva calculados a partir de incrementos uniformes em x ou y não estão distribuídos uniformemente ao longo da curva o que afecta a qualidade e precisão da representação gráfica.

16

Representação TridimensionalRepresentações Paramétricas (cont…) Na forma paramétrica, cada coordenada de um ponto em

uma curva é representada como uma função de um único parâmetro, sendo que a posição de um ponto na curva é fixada pelo valor do parâmetro.

Por exemplo: para uma curva 2D que usa t como parâmetro, as coordenadas

cartesianas de um ponto na curva são: x = x(t) e y = y(t) O vector que define a posição de um ponto na curva é portanto

dados por P(t) = [ x(t), y(t) ] A derivada, ou vector tangente da curva é dada por

P’(t) = [ x´(t), y’(t)] A inclinação da curva é dada por

/ '( )

/ '( )

dy dy dt y t

dx dx dt x t= =

17

Representação TridimensionalRepresentações Paramétricas (cont…) Observações gerais:

A forma paramétrica é usada para representar curvas fechadas e com valores múltiplos.

Uma vez que um ponto na curva é especificado por um único valor de parâmetro, a forma paramétrica é independente do sistema de coordenadas.

Os extremos e o cumprimento da curva são fixos pelo intervalo de variação do parâmetro, frequentemente normalizado para 0≤ t ≤ 1, por conveniência.

Como as curvas são independentes do sistema de coordenadas, elas são facilmente manipuladas utilizando as transformações geométricas afins.

Determinar um ponto em uma curva dado x é trivial no caso da representação explícita. No caso da paramétrica, é necessário obter o valor do parâmetro t a partir de x, e a seguir usar este valor para obter y.

18

Representação TridimensionalRepresentações Paramétricas (cont…) Exemplos:

19

Representação TridimensionalRepresentações Paramétricas (cont…) Exemplos:

“Pontos em uma curva calculados a partir de incrementos uniformes em x ou y não estão distribuídos uniformemente ao longo da curva o que afecta a qualidade e precisão da representação gráfica”

Representação Não Paramétrica vs Paramétrica (primeiro quadrante de uma circunferência)

y x x= − ≤ ≤1 0 12 ,

( ) ( )[ ]cos / ,sen / ,π πt t t2 2 0 1 ≤ ≤

20

Representação TridimensionalRepresentações Paramétricas (cont…) Atenção!

Não existe uma única representação paramétrica de uma curva.

Exemplo: as seguintes representações descrevem o primeiro quadrante de uma circunferência:

Para a mesma curva pode ser escolhida a representação paramétrica mais conveniente em função de

custo computacional facilidade de armazenamento uniformidade do passo

( ) ( )[ ]cos / ,sen /

, ,

π πt t

t

t

t

t

2 2

1

1

2

1

2

2 2

e

−+ +

21

Representação TridimensionalCurvas cúbicas paramétricas As curvas cúbicas paramétricas podem ser obtidas com

base em polinomiais de grau 3 Na forma algébrica (em função do parâmetro u):

x(u) = axu3 + bxu2 + cxu + dx

y(u) = ayu3 + byu2 + cyu + dy

z(u) = azu3 + bzu2 + czu + dz

Na forma vectorial:

P(u) = [au3+bu2+cu+d] com u ∈ [0,1]

22

Representação TridimensionalCurvas cúbicas paramétricas (cont…) Exemplo:

x = 2u2 + 1;

y = u3 + u2;

z = 3u - 2P(0) = [1, 0, -2]

P[0.5] = [1.25, 0.375, -0.5]

P[0.8] = [2.024, 1.152, 0.4]

P[1] = [3, 2, 1]

23

Representação TridimensionalCurvas cúbicas paramétricas (cont…) Forma Geométrica vs Forma Algébrica

Dizemos que uma curva cúbica paramétrica está na forma geométrica se ela é “controlada” pelos pontos fronteira P(0) e P(1) e os vectores tangentes nestes pontos.

Estas curvas são também denominadas Curvas Hermite

Em geral a forma geométrica é mais conveniente para controlar a construção da curva e a sua compreensão, comparando com a forma algébrica

24

Representação TridimensionalCurvas cúbicas paramétricas (cont…) Como podemos obter a forma Geométrica?

Tomando P(u) = au3 + bu2 + cu + d e u ∈ [0,1] Logo P(u)u = 3au2 + 2bu + c (derivada em u) Podemos obter que

P0 = d;

P0u = c;

P1 = a + b + c + d;

P1u = 3a + 2b +c

Resolvendo para a, b, c, d

a = 2P0 – 2P1 + P0u + P1

u;

b = -3P0 + 3P1 – 2P0u – P1

u;

c = P0u;

d = P0 ;

25

Representação TridimensionalCurvas cúbicas paramétricas (cont…) Como podemos obter a forma Geométrica?

Assim

P(u) = (2u3 - 3u2 +1)P0 + (-2u3 + 3u2)P1 + (u3 – 2u2 + u)P0u + (u3 – u2)P1

u e

u ∈ [0,1]

Se F1 = (2u3 - 3u2 +1); F2 = (-2u3 + 3u2);

F3 = (u3 – 2u2 + u); F4 = (u3 – u2);

Fs são designados por Polinómios Hermite base

Finalmente podemos obter que:

p = F1 P0 + F2P1 + F3P0u + F4P 1

u

Se B = [P0 P1 P0u P1

u] então

p = FB

26

Curvas de Bézier Introdução

Curvas implementadas em paralelo por Piérre Bézier e por Paul de Casteljau enquanto trabalhavam na Renault e na Citroen, respectivamente.

Receberam o nome de Bézier por este ter sido o primeiro a referir-se a elas num trabalho escrito. Em 1970 no livro “Emploi des Machines a Commande Numerique” as curvas apareceram formuladas como hoje as conhecemos.

Casteljau criou um algoritmo matematicamente estável que pode ser usado para as implementar.

27

Curvas de Bézier Definição informal

Uma curva de Bézier é definida por vários pontos (pontos de controlo), sendo que o primeiro e o último pertencem à curva.

A curva de Bézier está sempre contida no invólucro convexo definido pelos seus pontos de controlo a que se dá o nome de Polígono de Bézier.

28

Curvas de Bézier Introdução

A questão fundamental:

Como criar uma curva que começa num ponto, termina noutro ponto e a sua forma está dependente de um certo número de pontos de controlo, que irão “puxar” ou “afastar” a curva de si?

Uma possível resposta:

Temos de construir uma função que estabeleça o “peso” que cada ponto de controlo estabelece em cada momento, ao longo da curva.

Uma das funções mais utilizadas para esse efeito são os Polinómios de Bernstein.

29

Curvas de Bézier Polinómio de Bernstein

O polinómio de Bernstein de grau n:

onde i representa o índice do ponto de controlo, o parâmetro t ∈ [0,1]

O parâmetro t move-se ao longo da curva, que apresenta o mesmo grau que o polinómio, e determina em cada instante o peso do ponto i

( ) ( ) ( ) ( ),

!1 1

! !

n i n ii ii n

n nB t t t t t

i i n i

− − = − = − ÷ −

30

Curvas de Bézier As curvas de Bézier são definidas pela seguinte equação

paramétrica:

onde

são os polinómios de Bernstein de grau n, definindo 00=1, e os pontos Pi por pontos de controlo.

( ) ( ) [ ],0

, 0,1n

i i ni

C t P B t t=

= ∈∑

( ) ( ), 1 , 0,...,n ii

i n

nB t t t i n

i−

= − = ÷

31

Curvas de Bézier Curvas de Bézier Lineares

n = 1

Dois pontos de controlo: P0 e P1

A curva é dada pela equação:

Temos que: uma curva de Bézier linear é o segmento de recta que une os dois pontos de controlo.

( ) ( ) [ ]0 11 , 0,1C t t P tP t= − + ∈

P0

P1

32

Curvas de Bézier Curvas de Bézier Quadráticas

n = 2

Três pontos de controlo: P0, P1 e P2

A curva é dada pela equação:

P0

P1

( ) ( ) ( ) [ ]2 20 1 21 2 1 , 0,1C t t P t t P t P t= − + − + ∈

P2

33

Curvas de Bézier Curvas de Bézier Cúbicas

n = 3

Quatro pontos de controlo: P0, P1, P2 e P3

A curva é dada pela equação:

P0

P1

P2

( ) ( ) ( ) [ ]3 2 2 30 1 2 3( ) 1 3 1 3 1 , 0,1C t t P t t P t t P t P t= − + − + − + ∈

P3

34

Curvas de Bézier Curvas de Bézier Cúbicas

n = 3

Quatro pontos de controlo: P0, P1, P2 e P3

A curva é dada pela equação:

O grau mais utilizado para as curvas de Bezier é o terceiro.

P0

P1

P2

( ) ( ) ( ) [ ]3 2 2 30 1 2 3( ) 1 3 1 3 1 , 0,1C t t P t t P t t P t P t= − + − + − + ∈

P3

35

Curvas de Bézier Demo

http://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/Beziers.html

36

Superficies de Bézier As superfícies de Bézier são generalizações das curvas

de Bézier a dimensões de ordem superior.

Uma superfície de Bézier de ordem (n,m) pode ser definida em termos de um conjunto de (n+1) x (m+1) pontos de controlo Kij com índices inteiros i=0,…,n e j=0,…, m.

37

Superficies de Bézier Uma superfície de Bézier com estes pontos de controlo

pode ser descrita como uma função do quadrado unitário em R2, (u,v) ∈ [0,1]2, no espaço afim dos pontos de controlo da seguinte forma:

onde

( ) ( ) ( )0 0

,n m

n mi j i j

i j

p u v B u B v K= =

= ∑∑

( ) ( )1n in i

i

nB u u u

i−

= − ÷

top related