CG trabalha basicamente com a geometria de linhas e objetos lineares no espao 3D. Exemplos:
interseces geomtricas orientao transformao mudana de coordenadas
Geometrias
geo = terra, metria = medida Agricultura, pirmides, 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 geomtricos fossem expressos matematicamente. Sec 19: geometrias no Euclidianas [Lobachevski e Gauss], sugerem outros sistemas onde se aplicam outros axiomas. Afim, euclidiana, e projetiva.
Geometria Afim
Elementos bsicos
escalares (nmeros) pontos: usados para indicar uma posio vetores livres (ou simplesmente vetores): possuem direo e magnitude, mas nenhuma posio vetor nulo ou zero para tornar clara a inteno do programador exemplo escalar * vetor (ok) escalar * ponto (?)
Programao geomtrica
Existem muitas reas da Cincia da Computao que exigem o uso de entidades geomtricas
Computao grfica CAD - computer aided design Robtica Viso computacional GIS - geografic information systems
Convenes
Combinaes Afins
Existe uma combinao particular entre pontos que consideraremos vlida, denominada combinao afim.
pontos: letras romanas maisculas vetores: letras romanas minsculas escalares: letra grega Combinaes:
v = e . v , ou v = v / e (multiplicao por escalar) v = v + v ou v = v - v (adio de vetores) v = p - p (diferena entre pontos) p = p + v ou p = p - v (adio entre p e v)
Solues
Combinao convexa
Definies
Combinao afim: dada uma seqncia de pontos P1 a Pn, uma combinao afim uma somatria da forma: onde a somatria de i deve ser 1. Combinao convexa: uma combinao afim, onde i so todos no negativos.
Exerccios:
Dados 3 pontos tridimensionais no colineares, qual a unio de todas as suas combinaes afins? Resposta: todo o plano contendo os 3 pontos Qual a unio de todas as suas combinaes convexas? Resposta: o tringulo (incluindo o seu interior) formado pelos 3 pontos.
Geometria Euclidiana
A geometria afim no possui um mecanismo para tratar ngulos e distncias. A geometria euclidiana uma extenso 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>
Dado dois pontos Q e P, qual o seu ponto mdio R? Mais genrico: qual o ponto R que divide PQ nas propores e 1-? { entre [0,1]} R = P + (Q - P) R = (1 - )P + Q (escala de Q-P) (mdia ponderada)
v' = v / |v|
Outras propriedades
Sistema de coordenadas
Ortogonalidade
u e v so ortogonais (ou perpendiculares) se <u.v> = 0
Projeo ortogonal: dados um vetor u e um vetor no 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 verifique que u2 ortogonal a v. u1 chamado de projeo ortogonal de u sobre v.
u1 = v <u.v> / <v.v> (pode-se ignorar <v.v> se |v| = 1) u2 = u - u1
Sistema de coordenadas o mecanismo utilizado para a definio dos objetos primitivos da geometria euclidiana (ponto, vetor, etc). Como representar pontos e vetores no espao afim?
Frame de coordenadas
Um frame de coordenadas em espaos 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 Homogneas
Observaes
Primeiro, um axioma, para facilitar nossa forma de notao:
0 . P = vetor nulo 1.P=P
Para representar pontos e vetores em um espao d-dimensional, utilizaremos vetores de comprimento d+1.
pontos tem a ltima coordenada = 1 vetores tem a ltima coordenada = 0
Esse tipo de representao denominado coordenadas homogneas de um ponto ou vetor relativo a um frame F.
A escolha de 1/0 para ponto/vetor no arbitrria, ela possui algumas propriedades interessantes
v = P - Q: a ltima coordenada se cancela seja U e V pontos ou vetores. Aps vrias operaes 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 contrrio, no uma operao afim vlida.
centride = (P+Q+R)/3
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 funo de F
G.e0 [F] =(-2,-1,0); G.e1 [F] = (0,1,0), G.O [F] = (5, 1, 1) sistema linear com 3 equaes e 3 incgnitas soluo (0, 1 , 2) = (1,2,1)
dado um ponto P[F] = (0,1,2)T, 2=1, mas manteremos como incgnita para que as expresses funcionem para vetores livres tambm. Como determinar P[G] = (0, 1 , 2)T?
Transformao Afim
uma classe de transformaes que inclue:
Exemplos
Propriedades:
todas as transformaes preservam combinaes afins entre pontos R = (1 - )P + Q => T(R) = (1-)T(P) + T(Q)
Rotao
Conveno:
Translao
Escala Uniforme
Escala no Uniforme
Reflexo
Cisalhamento
Representao matricial
Transformaes
Translao
translao por um vetor v mapeia qualquer ponto P para P + v. vetores no so afetados por translao
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 transformao dos elementos do frame, ento sabemos qual a transformao 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 transformao afim a um ponto/vetor equivale a multiplicar suas coordenadas por uma matriz, formada pela transformao dos elementos do frame.
Mudana de escala
Mudana de escala uniforme feita com relao a um ponto. Consideraremos a origem do frame padro. dado um escalar , esta transformao mapeia um objeto (ponto ou vetor) de coordenadas (0,1 ,2 ,3 )T para (0,1 ,2 ,3 )T para mudana no uniforme: (00,11 ,22 ,3 )T
Transformaes
Reflexo
2D: dada uma linha em um plano, a reflexo troca os pontos de lado simetricamente ao longo dessa linha. 3D: dado um plano em 3D, a reflexo 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
Shearing
Rotao
definida para um ponto ou vetor, fixos no espao. casos bsicos: rotao na origem, ao redor dos vetores bases, segundo a regra da mo direita.
Transformaes
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.
Transformaes
Transformaes complexas podem ser resolvidas por: composies de transformaes simples determinao da imagem dos elementos da base. em geral, esse mtodo mais simples Casos especiais: Transformaes rgidas ou Euclidianas: so transformaes que preservam ngulos e comprimentos. Exemplo: translao, rotao e reflexo. Transformaes ortogonais ou homotticas: preservam ngulos, mas no comprimentos. Exemplo: escalonamento uniforme.
Composio de transformaes
transformaes afins so fechadas sob composio, ou seja, composies de transformaes afins resulta em uma transformao afim. T, S transformaes: (T.S)(P) = (T(S(P))), ou em notao matricial: MTMSP
Transformaes
Rotao ao redor de z
a origem e o vetor z no so alterados o vetor unitrio x mapeado para (cos, sin, 0, 0)T o vetor unitrio y mapeado para (-sin,cos, 0, 0)T semelhante para os demais vetores de base
pense em shearing como uma transformao que mapeia um cubo em um paralelogramo (fixe uma face do cubo, e desloque a face oposta, deformando as faces laterais).
Produto Vetorial
O produto vetorial comumente definido no espao 3D, pois ele se aplica apenas a vetores e no a pontos. Dado 2 vetores u, v, o produto vetorial definido como:
Simetria reversa: u x v = -( v x u)
uxu=0
u x (v) = (u x v), u x (v + w) = (u x v) + (u x w)
Orientao
Dados dois nmeros reais p e q, uma funo possvel de orientao pode ser dado por: Or(p,q) = sign(q - p) Como estender esse conceito para dimenses superiores? Em um espao d-dimensional, a orientao de (d+1) pontos pode ser definida pelo sinal do determinante da matriz composta pelas suas coordenadas homogneas.
Interpretao
Para um plano, a orientao de 3 pontos (P,Q,R) +1 se o tringulo PQR orientado no sentido anti-horrio, -1 se orientado no sentido horrio, e 0 se forem colineares. Em 3D, uma orientao positiva dos pontos PQRS significa que eles seguem uma espiral direita (mo direita), e zero se forem coplanares. Porque a coordenada homognea primeiro?
caso contrrio o sinal de determinante seria alternado para dimenses pares e impares
u x v = (uyvz - uzvy, uzvx-uxvz, uxvy-uyvx)T definio vale para um par de vetores no espao 3D e : vetores da base
Determinante: u x v = (e | u | v) T
Outras propriedades do PV
Perpendicularidade: (u x v) perpendicular a u e a v (u e v linearmente independentes). ngulo e rea: |u x v| = |u| |v| sin
ngulo entre u e v: em geral o PV no usado para calcular pois o produto escalar mais simples de calcular. |u x v| igual a rea do paralelograma cujos lados so dados por u e v.
Interseco de linhas
Dado dois segmentos de linha PQ e RS em um plano, determinar se eles se intersectam. possveis problemas: linhas paralelas, junes, linhas colineares, etc. simplificao: apenas interseces prprias (IP), com um nico ponto em comum no interior dos segmentos. se 3 pontos forem colineares, os segs no 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)
Programao geomtrica
independente de coordenadas Afim Euclidiana
Geometrias Frame de Coordenadas Coordenadas Homogneas Transformaes: translao, rotao, shear, escala, reflexo