• Nenhum resultado encontrado

Geometria e Programação Geométrica

N/A
N/A
Protected

Academic year: 2022

Share "Geometria e Programação Geométrica"

Copied!
7
0
0

Texto

(1)

Geometria e Programação Geométrica

Capítulo 5 (Foley & van Dam)

Programação geométrica

Existem muitas áreas da Ciência da Computação que exigem o uso de entidades geométricas

Computação gráfica

CAD - computer aided design

Robótica

Visão computacional

GIS - geografic information systems

Geometria e Computação Gráfica

CG trabalha basicamente com a geometria de linhas e objetos lineares no espaço 3D.

Exemplos:

intersecções geométricas

orientação

transformação

mudança de coordenadas

Programação independente de coordenadas

Tradicionalmente um livro de CG introduz um sistema de coords, vetores, matrizes, seguido por fórmulas que envolvem diversas matrizes 4x4.

Embora conveniente, se torna difícil ao programador "ver" o que ele está programando.

Tony DeRose: desenvolveu um método de programação geométrica independente de coordenadas, o que simplifica o raciocínio geométrico, ou seja, ao invés de matrizes, utilizaremos operadores geométricos de alto nível (esse sim, são implementados com matrizes).

Geometrias

geo = terra, metria = medida

Agricultura, pirâmides, etc...

Euclides: [sec 3 AC] formalizou a geometria a partir de alguns axiomas (sem sistema de coords).

Descartes: [sec 17] introduz um sistema de coords, permitindo que conceitos geométricos fossem expressos matematicamente.

Sec 19: geometrias não Euclidianas [Lobachevski e Gauss], sugerem outros sistemas onde se aplicam outros axiomas.

Afim, euclidiana, e projetiva.

Geometria Afim

Elementos básicos

escalares (números)

pontos: usados para indicar uma posição

vetores livres (ou simplesmente vetores): possuem direção e magnitude, mas nenhuma posição

vetor nulo ou zero

Por que distinguir pontos de vetores?

para tornar clara a intenção do programador

exemplo

escalar * vetor (ok) escalar * ponto (?)

(2)

Convenções

pontos: letras romanas maiúsculas vetores: letras romanas minúsculas

em geral, sobrepostos com uma flecha

escalares: letra grega

Combinações:

v = e . v , ou v = v / e (multiplicação por escalar)

v = v + v ou v = v - v (adição de vetores)

v = p - p (diferença entre pontos)

p = p + v ou p = p - v (adição entre p e v)

Combinações Afins

Existe uma combinação particular entre pontos que consideraremos válida, denominada combinação afim.

Dado dois pontos Q e P, qual é o seu ponto médio R?

Mais genérico: qual o ponto R que divide PQ nas proporções αe 1-α? { α entre [0,1]}

Soluções

R = P + α(Q - P) (escala de Q-P)

R = (1 -α)P +αQ (média ponderada)

Combinação convexa

definida para α no intervalo [0,1]

Definições

Combinação afim: dada uma seqüência de pontos P1 a Pn, uma combinação afim é uma somatória da forma:

α1.P1 + α2.P2 + .. +αn.Pn

onde a somatória de αi deve ser 1.

Combinação convexa: é uma combinação afim, onde αi são todos não negativos.

informalmente, tomaremos a liberdade de escrever expressões do tipo: R = (P + Q) / 2

Exercícios:

Dados 3 pontos tridimensionais não colineares, qual é a união de todas as suas combinações afins?

Resposta: todo o plano contendo os 3 pontos

Qual a união de todas as suas combinações convexas?

Resposta: o triângulo (incluindo o seu interior) formado pelos 3 pontos.

Geometria Euclidiana

A geometria afim não possui um mecanismo para tratar ângulos e distâncias.

A geometria euclidiana é uma extensão da geometria afim, que inclui o operador de produto interno (produto escalar)

O produto interno de dois vetores resulta em um escalar, e será denotado <u.v>.

Propriedades:

Positividade: <u.u> >= 0 e <u.u> = 0 iff u = 0;

Simetria: <u.v> = <v.u>

Bilinearidade: <u. v+w> = <u.v. + <u.w> e <u. αv> = α<u.v>

Produto escalar de 2 vetores

O produto escalar <u.v> = Σui.vi

Comprimento de um vetor: |v| = sqrt[ <v.v> ]

Normalização: dado um vetor não nulo v, a normalização de v resulta em um vetor de comprimento unitário, de mesma direção

v' = v / |v|

Distância entre pontos: dist(P, Q) = |P - Q|

Ângulo entre 2 vetores não nulos:

θ = ang(u,v) = cos-1(<u.v> / |u|.|v|) = cos-1(<u' . v'>)

cosθ= <u'.v'>

(3)

Outras propriedades

Ortogonalidade

u e v são ortogonais (ou perpendiculares) se <u.v> = 0 Projeção ortogonal: dados um vetor u e um vetor não nulo v, é em geral conveniente decompor u como a soma de dois vetores u = u1 + u2, onde u1 é paralelo a v e u2 é ortogonal a v

u1 = v <u.v> / <v.v> (pode-se ignorar <v.v> se |v| = 1)

u2 = u - u1

verifique que u2 é ortogonal a v.

u1 é chamado de projeção ortogonal de u sobre v.

Sistema de coordenadas

Sistema de coordenadas é o mecanismo utilizado para a definição dos objetos primitivos da geometria euclidiana (ponto, vetor, etc).

Como representar pontos e vetores no espaço afim?

Álgebra linear: uso de 3 vetores linearmente independentes (i, j, k):

v = α0 i + α1 j + α2 k

Recordação de álgebra linear

Os vetores (i,j,k) formam uma base.

A base mais comum utiliza vetores unitários ortogonais entre si: (1,0,0) (0,1,0) (0,0,1) chamada de base ortonormal.

A tripla (α0,α1,α2) define a coordenada cartesiana do vetor v.

Porém, 3 vetores apenas não são suficientes para determinar a posição de um ponto.

É necessário definirmos uma origem O para o sistema de coordenada.

Frame de coordenadas

Um frame de coordenadas em espaços afins será definido por uma base ortonormal e um ponto chamado de origem, de forma que um ponto P em 3D pode ser representado como:

P = α0 i + α1 j + α2 k + O Exemplos

Coordenadas Homogêneas

Para representar pontos e vetores em um espaço d-dimensional, utilizaremos vetores de

comprimento d+1.

pontos tem a última coordenada = 1

vetores tem a última coordenada = 0

Esse tipo de representação é denominado coordenadas homogêneas de um ponto ou vetor relativo a um frame F.

Observações

Primeiro, um axioma, para facilitar nossa forma de notação:

0 . P = vetor nulo

1 . P = P

Atenção: "vetor" pode ser usado como

vetor livre: entidade geométrica

vetor de coordenada: forma de representação que pode ser usada para vetores livres e para pontos.

(4)

Propriedades de coord. homogêneas

A escolha de 1/0 para ponto/vetor não é arbitrária, ela possui algumas propriedades interessantes

v = P - Q: a última coordenada se cancela

seja U e V pontos ou vetores. Após várias operações da forma U-V, U+V ouαU:

se a última coord = 0, o resultado é um vetor

se a última coord = 1, o resultado é um ponto

caso contrário, não é uma operação afim válida.

Isso permite grande flexibilidade, como combinações do tipo:

centróide = (P+Q+R)/3

Sistemas de coord. alternativos

Existem dois objetivos conflitantes em qualquer sistema de prog. geométrica:

pontos e vetores devem ser representados com respeito a algum sistema universal de coordenadas, que permita trabalhar com pontos e vetores simplesmente modificando suas coordenadas;

em geral é conveniente representar pontos de acordo com um sistema de coordenadas local

Convenção:

sistema de coord. universal: frame padrão fixo, ortonormal: e0, e1, e2, O

Exemplo de mudança de coordenadas

Nosso exemplo mostrava que

P[F] = (3,2,1) e w[F]=(2,1,0)

como determinar suas coordenadas no frame G computacionalmente?

Nosso objetivo é encontrar os escalares β0, β1 , β2 tal que P = β0G.e0 + β1G.e1+ β2G.O

Como F é um frame, os elementos de G podem ser descritos em função de F

G.e0 [F] =(-2,-1,0); G.e1 [F] = (0,1,0), G.O [F] = (5, 1, 1)

sistema linear com 3 equações e 3 incógnitas

solução (β0, β1 , β2) = (1,2,1)

Mudança de coordenadas: generalização Seja F o frame padrão

Um frame arbitrário G pode então ser descrito com relação a F como:

Ge0 [F] = (g00, g01, 0)T

Ge1 [F] = (g10, g11, 0)T

GO [F] = (g20, g21, 1)T

É dado um ponto P[F] = (α0,α1,α2)T, α2=1, mas manteremos como incógnita para que as

expressões funcionem para vetores livres também.

Como determinar P[G] = (β0, β1 , β2)T?

Transformação Afim

É uma classe de transformações que inclue:

rotação

translação

escala (uniforme e não uniforme)

reflexão

shearing

Propriedades:

todas as transformações preservam combinações afins entre pontos

R = (1 -α)P +αQ => T(R) = (1-α)T(P) + αT(Q)

Exemplos

Rotação Translação Escala Uniforme

Escala não Uniforme

Reflexão Cisalhamento

(5)

Representação matricial

As combinações afins são preservadas, portanto:

R = α0F.e0 + α1F.e1 + α2F.O =>

T(R) = α0T(F.e0 )+ α1T(F.e1 )+ α2T(F.O)

Assim, se R é um ponto ou vetor no frame F

e sabemos a transformação dos elementos do frame, então sabemos qual a transformação de R, ou

T(R)[F] = (T(F.e0 )[F] | T(F.e1 )[F] | T(F.O)[F]) (α0 α1 α2)Τ

ou seja, aplicar uma transformação afim a um ponto/vetor equivale a multiplicar suas coordenadas por uma matriz, formada pela transformação dos elementos do frame.

Transformações

Translação

translação por um vetor v mapeia qualquer ponto P para P + v.

vetores não são afetados por translação

Mudança de escala

Mudança de escala uniforme é feita com relação a um ponto.

Consideraremos a origem do frame padrão.

dado um escalar β, esta transformação mapeia um objeto (ponto ou vetor) de coordenadas (α0,α1,α2,α3)T para (βα0,βα1,βα2,α3)T

para mudança não uniforme: (β0α0,β1α1,β2α2,α3)T

Transformações

Reflexão

2D: dada uma linha em um plano, a reflexão troca os pontos de lado simetricamente ao longo dessa linha.

3D: dado um plano em 3D, a reflexão troca os pontos de lado simetricamente ao longo desse plano.

Pode ser considerado como um caso particular de escalonamento, em que o fator de escala é negativo

Rotação

é definida para um ponto ou vetor, fixos no espaço.

casos básicos: rotação na origem, ao redor dos vetores bases, segundo a regra da mão direita.

Transformações

Rotação ao redor de z

a origem e o vetor z não são alterados

o vetor unitário x é mapeado para (cosθ, sinθ, 0, 0)T

o vetor unitário y é mapeado para (-sinθ,cosθ, 0, 0)T

semelhante para os demais vetores de base

Shearing

pense em shearing como uma transformação que mapeia um cubo em um paralelogramo (fixe uma face do cubo, e desloque a face oposta, deformando as faces laterais).

Shearing

xy-shear: o ponto P = (px, py, pz, 1)T é transladado pelo vetor pz(shx, shy, 0, 0)T, esse vetor é ortogonal ao eixo z e seu comprimento é proporcional a coordenada z do ponto P.

analogamente para xz e yz-shear.

Composição de transformações

transformações afins são fechadas sob composição, ou seja, composições de transformações afins resulta em uma transformação afim.

T, S transformações: (T.S)(P) = (T(S(P))), ou em notação matricial: MTMSP

Transformações Transformações

Transformações complexas podem ser resolvidas por:

composições de transformações simples

determinação da imagem dos elementos da base.

em geral, esse método é mais simples

Casos especiais:

Transformações rígidas ou Euclidianas: são transformações que preservam ângulos e comprimentos. Exemplo: translação, rotação e reflexão.

Transformações ortogonais ou homotéticas: preservam ângulos, mas não comprimentos. Exemplo:

(6)

Outros operadores geométricos

Vimos até agora as operações:

mudança de sistemas de coordenadas

transformadas afins

Outros operadores bastante utilizados:

produto vetorial cruzado

dado dois vetores, como determinar um terceiro vetor ortogonal aos dois primeiros?

orientação: dado 2 reais p e q, há 3 possibilidades de ordenação, (p > q) ou (p < q) ou (p = q), o que permite a definição de um operador de orientação Or(p,q) que retorna - 1, 0, ou 1 dependendo da ordem de p e q.

Produto Vetorial

O produto vetorial é comumente definido no espaço 3D, pois ele se aplica apenas a vetores e não a pontos.

Dado 2 vetores u, v, o produto vetorial é definido como:

u xv = (uyvz - uzvy, uzvx-uxvz, uxvy-uyvx)T

definição vale para um par de vetores no espaço 3D

Determinante: u xv = (e | u | v) T

e : vetores da base

Propriedades do produto vetorial

Simetria reversa: u xv = -( v xu)

u xu = 0

Não associativo: ao contrário de outros produtos em álgebra, o produto vetorial não é associativo:

(u xv) xw != u x(v xw)

Bilinearidade:

u x(αv) = α(u xv),

u x(v + w) = (u xv) + (u xw)

Outras propriedades do PV

Perpendicularidade: (u xv) é perpendicular a u e a v (u e v linearmente independentes).

Ângulo e área: |u xv| = |u| |v| sinθ

ângulo entre u e v: θ

em geral o PV não é usado para calcular θpois o produto escalar é mais simples de calcular.

|u xv| é igual a área do paralelograma cujos lados são dados por u e v.

Orientação

Dados dois números reais p e q, uma função possível de orientação pode ser dado por:

Or(p,q) = sign(q - p)

Como estender esse conceito para dimensões superiores?

Em um espaço d-dimensional, a orientação de (d+1) pontos pode ser definida pelo sinal do determinante da matriz composta pelas suas coordenadas homogêneas.

Interpretação

Para um plano, a orientação de 3 pontos (P,Q,R) é +1 se o triângulo PQR é orientado no sentido anti-horário, -1 se orientado no sentido horário, e 0 se forem colineares.

Em 3D, uma orientação positiva dos pontos PQRS significa que eles seguem uma espiral direita (mão direita), e zero se forem coplanares.

Porque a coordenada homogênea primeiro?

caso contrário o sinal de determinante seria alternado para dimensões pares e impares

(7)

Intersecção de linhas

Dado dois segmentos de linha PQ e RS em um plano, determinar se eles se intersectam.

possíveis problemas: linhas paralelas, junções, linhas colineares, etc.

simplificação: apenas intersecções próprias (IP), com um único ponto em comum no interior dos segmentos.

se 3 pontos forem colineares, os segs não formam uma IP.

As linhas se cruzam iff P e Q se encontram em lados opostos de RS, e R e S se encontram em lados opostos de PQ

(Or(P,Q,R)*Or(P,Q,S)<0) &&

(Or(R,S,P)*Or(R,S,Q)<0)

O que você deve saber

Programação geométrica

independente de coordenadas

Geometrias

Afim

Euclidiana

Frame de Coordenadas

Coordenadas Homogêneas

Transformações: translação, rotação, shear, escala, reflexão

Referências

Documentos relacionados

Cargas pontuais (F ou M): Matematicamente, a aplicação pontual de cargas não existe (é preciso uma área para aplicar, ainda que pequena) e sua ocorrência provocará uma

Instale as duas luzes de travão/sinalização na parte inferior da plataforma de carga de plástico e suporte da plataforma de carga com dois pequenos suportes de luzes

Silva e Márquez Romero, no prelo), seleccionei apenas os contextos com datas provenientes de amostras recolhidas no interior de fossos (dado que frequentemente não há garantia

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

A partir da necessidade da adequação ambiental da propriedade rural nos dispositivos do novo Código Florestal, principalmente em termos de recuperação das Áreas de

(b) Médios produtores, enquadrados como beneficiários do Programa Nacional de Apoio ao Médio Produtor Rural (Pronamp), podem acessar linha de crédito do ABC Ambiental a 8,0% de

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

Capítulo 7 – Novas contribuições para o conhecimento da composição química e atividade biológica de infusões, extratos e quassinóides obtidos de Picrolemma sprucei