Projeções - JAI 1998

1,632 views
1,525 views

Published on

Artigo sobre Projeções Planares

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,632
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Projeções - JAI 1998

  1. 1. Projeções e o seu uso em Computação Gráfica Prof. Dr. André Luiz Battaiola (1) Ms Guaraci Erthal (2) (1) Departamento de Computação - DC Universidade Federal de São Carlos - UFSCar Via Washington Luiz, Km. 235 CP. 676 CEP: 13565-905 São Carlos - SP email: andre@dc.ufscar.br www.dc.ufscar.br/grv/andre.htm fone: 016-274-8232 // fax: 016-274-8233 Divisão de Processamento de Imagens - DPI Instituto Nacional de Pesquisas Espaciais - INPE Av. dos Astronautas, 1758 - Jardim da Granja CP. 515 CEP 12.201-970 São José dos Campos - SP email: gaia@dpi.inpe.br fone: (012) 345-6518Resumo: Os usuários de sistemas ou bibliotecas gráficas normalmente se deparam comoperações como o posicionamento e a especificação de câmeras, ou então a definição detransformações que permitam o correto posicionamento de um objeto em uma cena. Tãocomum quanto estas operações é a dificuldade do usuário em realizá-las de formatotalmente segura e compreensível. Outro problema vivenciado pelo usuário é o transportede objetos criados em um determinado sistema gráfico para outro. Estes problemasapontam para uma necessidade do usuário de aprimorar o seu conhecimento acerca domodo de funcionamento destas operações. A finalidade deste texto é conceituar, de umaforma objetiva e didática, projeções no âmbito da computação gráfica, apresentando a suaclassificação e formulação matemática. Com base nestes conceitos é ilustrado ofuncionamento do esquema de transformações em bibliotecas e sistemas gráficos quemanipulam primitivas tridimensionais.Abstract: Users of graphics systems or libraries are normally working with operations likethe positioning or specification of cameras or transformation definitions that allow thecorrect positioning of an object in a scene. As common as these operations it is thedifficulty of a user to execute them in a safe and comprehensible way. Other user’sproblem is the transportation of objects created in a system to another system. Theseproblems point to a user necessity to have a deeper concept of these operations. This text
  2. 2. purpose is to present in a pragmatic and didactic way the projection concepts in a computergraphics context. It is described projections classification and its mathematical theory and,based in these concepts, it is showed how graphics libraries and systems executetransformations in a three-dimensional environment.Keywords: Projections, Graphics Libraries, Graphics Systems, and Computer Graphics. Índice1- Introdução 032- Transformações Afins 04 2.1 Translação 04 2.2 Escalamento 04 2.3 Rotação 05 2.4 Cisalhamento 09 2.5 Composição de Transformações 103- Coordenadas Homogêneas 114- Projeções Planares 12 4.1 Classificação das Projeções Planares 13 4.2 Projeções Planares Paralelas 14 4.3) Projeções Planares Perspectivas 165. Álgebra das Projeções Planares Paralelas 21 5.1 Álgebra das Projeções Planares Ortográficas 21 5.2 Álgebra das Projeções Planares Ortográficas Axonométricas 21 5.3 Álgebra das Projeções Planares Oblíquas 276. Álgebra das Projeções Planares Perspectivas 317. Uso de Projeções em Sistema CAD 388. Esquema de Transformações em Bibliotecas Gráficas Avançadas 44 8.1 Esquema de Transformações na Biblioteca Gráfica OpenGL 45 8.1.1. Transformações de Visualização e Modelagem 48 8.1.2. Transformação de Projeção 49 8.1.3. Transformação de Viewport 51 8.1.4. Matrizes de Transformação 51 8.2 Esquema de Transformações na Biblioteca Gráfica VRML 549. Projeções Estereográficas 5810. Referências xx
  3. 3. 1) IntroduçãoA humanidade utiliza há séculos o conceito de projeções geométricas. O mais antigoexemplo de uso de desenho técnico na história da humanidade data de aproximadamente2150 A.C. O desenho contém uma planta de um prédio da cidade de Lagash naMesopotâmia.De acordo com alusões literárias, os geômetras e pintores gregos da antiguidade clássicaestavam familiarizados com as leis da perspectiva. O pintor Agatharchus foi o primeiro ausar perspectivas em larga escala no período de 5 séculos A.C. e escreveu um livro sobre“pintura de cenas”, o que inspirou os filósofos Anaxagoras e Demócrito a escrever sobreperspectiva.A primeira evidência real do uso de desenhos para guiar edificações foi encontrado nostextos de Vitruvius, um arquiteto e engenheiro romano do período de Júlio César eAugustus, em torno do ano 14 A.C.Apesar do estudo de gregos e romanos, uma formalização destas técnicas só surgiu durantea Renascença. Os pintores Duccio (1255-1319), pintor do famoso quadro “A Última Ceia”,e Giotto (1276-1336) empreenderam esforços no sentido de representar a terceira dimensãoatravés da perspectiva. Filippo Brunelleschi (1377-1446) foi o primeiro artista adesenvolver um sistema matemático para a perspectiva. O primeiro tratado sobreperspectiva, Della Pittura, foi publicado em 1435 por Leone Battista Alberti (1404-1472).No mesmo período, a técnica da perspectiva continuou a ser aperfeiçoada por Piero dellaFrancesca (1420-1492) através do texto De Prospettiva Pingendi e por Leonardo da Vincique pintou a sua versão de “A Última Ceia”.Gasparad Monge (1746-1818), um desenhista de fortificações militares francesas, foi oprimeiro a descrever de forma organizada o uso de projeções em engenharia, o que lhevaleu o título de “pai da geometria descritiva”. Monge publicou a primeira edição do livroGeometrie Descriptive em 1801.Desta época para a atual, as técnicas de projeções continuaram a ser estudadas eaperfeiçoadas e se popularizaram entre profissionais e estudantes de engenharia, artes earquitetura. Com o surgimento da computação gráfica e com a popularização de sistemas ebibliotecas gráficas, o número de interessados nas técnicas de projeções se ampliouacentuadamente.Geralmente usuários de sistemas ou bibliotecas gráficas se deparam com operaçõesrelacionadas a posicionamento e especificação de câmeras ou então a ajuste detransformações que permitam o correto posicionamento de um objeto em uma cena. Tãocomum quanto estas operações é a dificuldade do usuário em realizá-las de formatotalmente segura e compreensível. Outro problema nesta mesma linha que o usuário sedepara é quando ele transporta os objetos criados em um determinado sistema gráfico paraoutro. Comumentemente falta-lhe um conhecimento mais conceitual do modo defuncionamento destas operações.
  4. 4. O objetivo deste curso é conceituar projeções planares, apresentando a sua classificação eformas algébricas de manipulá-las. Com base nestes conceitos, será ilustrado ofuncionamento do esquema de transformações em bibliotecas e sistemas gráficos quemanipulam primitivas tridimensionais.2. Transformações AfinsUma transformação de coordenadas da forma: r r r v′ = A v + b ou x  /  a11 a12 a13  x  b1   / a  y  =  21 a 22 a 23    y  + b     2 (eq. 2.1) z/   a 31  a 32 a 33   z   b3     é denominada uma transformação “afim”. Neste caso, as coordenadas (x’,y’,z’) do vetor r v ′ , que definem um ponto no espaço, são uma função linear de (x,y,z) e aij e bi sãoconstantes determinadas pelo tipo de transformação. Transformações afins tem apropriedade geral de transformar linhas paralelas em linhas paralelas e mapear pontosfinitos em pontos finitos. Note-se que em geometria afim, paralelismo é um conceitoimportante, sendo relações entre linhas paralelas uma parte substancial da geometria e osteoremas da geometria afim são idênticos aos da geometria euclidiana.Rotação, translação, escalamento, espelhamento e cizalhamento são exemplos detransformações afins detalhados a seguir.2.1 TranslaçãoA translação, alteração da posição de um ponto através da soma de constantes dedeslocamento as suas coordenadas, é normalmente aplicada sobre todos os pontos de umafigura, de maneira a possibilitar a sua movimentação no espaço (fig. 2.1). O exemploclássico em computação gráfica de aplicação desta transformação é a função pan,disponível em vários sistemas gráficos.Em termos de transformação afim, a translação corresponde a soma de um vetor dedeslocamento ao vetor que define o ponto que se deseja deslocar. Assim, na equação 2.1, ovetor com as componentes bi corresponde ao vetor de deslocamento.2.2 EscalamentoO escalamento, multiplicação das coordenadas de um ponto por valores iguais oudiferentes, é normalmente aplicada sobre todos os pontos de uma figura com o objetivo deampliar ou reduzir sua dimensão ou então distorcer a sua forma geométrica (fig. 2.2). O usoclássico desta operação em computação gráfica é a função zoom in (ampliação) ou zoomout (redução).
  5. 5. Fig. 2.1: Translação Fig. 2.2: EscalamentoQuando somente a operação de escalamento é realizada, a matriz A na equação 2.1 fica amatriz E, onde ex, ey, ez, são os fatores de escala das coordenadas x, y e z, respectivamente.Observa-se facilmente que a aplicação desta matriz sobre o vetor de coordenadas gera o vetor rescalado v , conforme descrito abaixo. e x 0 0 e x x   E= 0 ey 0 r   v =  ey y    0  0 ez    ez z   2.3 RotaçãoA rotação é o giro de um determinado ângulo de um ponto em torno de um ponto dereferência, sem alteração da distância entre eles. Esta operação é aplicada normalmentesobre todos os pontos de uma figura, o que possibilita que ela seja rotacionada. Váriosprogramas gráficos dispõem desta operação, sendo que alguns restringem o ângulo derotação a valores fixos, tais como, 90° e 180°.Para o cálculo da matriz de rotação, será considerado inicialmente apenas duascoordenadas, por exemplo, x e y. Assim, na figura 2.3a, o ponto P, de coordenadas (x,y),será rotacionado de um ângulo α em torno do eixo z, até a posição do ponto P’ (x’,y’). Alinha que une o ponto P a origem do sistema de coordenadas está rotacionada de um ânguloβ em relação ao eixo x. Figuras 2.3a, 2.3b, 2.3c - Rotações em torno dos eixo z, x e y, respectivamente.
  6. 6. Supondo-se que a distância ponto P a origem seja “D”, tem-se: x = D cos(α ) (eq. 2.2) x / = D cos(α + β ) (eq. 2.4) y = D sen( β ) (eq. 2.3) y / = D sen(α + β ) (eq. 2.5)Da trigonometria tem-se: cos(a + b) = cos(b) × cos(a ) − sen(b) × sen(a ) (eq. 2.6) sin(a + b) = cos(b) × sen(a ) + sen(b) × cos( a ) (eq. 2.7)Usando-se as equações 2.2, 2.3, 2.6 e 2.7 nas equações 2.4 e 2.5 tem-se: x / = x cos(α ) − y sen(α ) (eq. 2.8) y / = x sen(α ) + y cos(α ) (eq. 2.9)Em forma matricial, as equações 2.8 e 2.9 ficam: x/  cos(α ) − sen(α )   x   / =     (eq. 2.10) y  sen(α ) cos(α )   y Similarmente, a fórmula 2.10 se aplica as rotações das figuras 2.3b e 2.3c. No entanto, parase estender esta fórmula para rotações tridimensionais, deve-se considerar primeiramente oproblema da orientação dos eixos. Note-se que: r r r r r r vz = vx × vy (eq. 2.11) vx = vy × v z (eq.2.12) v r r - vy = vx × vz (eq. 2.13) r r rNeste caso, vx , vy e vz são versores nas direções x, y e z, respectivamente. Nas figuras2.3a, 2.3b e 2.3c os resultados das equações 2.11, 2.12 e 2.13 são indicados pelo conteúdodas circunferências posicionadas do lado esquerdo dos eixos. Sendo o conteúdo umacircunferência menor, o eixo resultante do produto vetorial dos eixos referenciados noplano tem sinal positivo, o que implica que o seu sentido é do plano para o leitor. Se oconteúdo é uma cruz, o sinal é negativo, sentido inverso. Assim, para manter aconsistência, a aplicação da fórmula matricial 2.10 deve considerar que os eixosreferenciados no plano da figura 2.3c estão invertidos, sendo o correto: z/  cos(α ) − sen(α )   z   / =     (eq. 2.14) x  sen(α ) cos(α )   x Considerando-se as figuras 2.3a, 2.3b e 2.3c e as fórmulas 2.10 e 2.14, pode-se facilmentededuzir as fórmulas para o cálculo no espaço tridimensional da rotação de um ponto A para oponto A’, sendo o plano de rotação perpendicular ao eixo z (fig. 2.4), y (fig. 2.5) e x (fig. 2.7).
  7. 7. x/  cos(α ) − sen(α ) 0  x  /     y  = sen(α ) cos(α ) 0  y  (eq. 2.15) Rotação em torno do eixo zz/    0  0 1  z    x/   cos(α ) 0 sen(α )  x /    y  =  0 1 0   y (eq. 2.16) Rotação em torno do eixo yz/  − sen(α ) 0 cos(α )    z   x/  1 0 0  x /     y  = 0 cos(α ) − sen(α )   y (eq. 2.17) Rotação em torno do eixo xz/  0 sen(α ) cos(α )    z    Fig. 2.4: Rotação em torno do eixo “z” Fig. 2.5: Rotação em torno do eixo “y”Uma operação bastante conhecida em computação gráfica é o espelhamento, a qualconsiste em rotacionar um objeto em torno de um eixo de tal maneira que os pontos doobjeto na posição original e na rotacionada mantenham a mesma distância em relação a umlinha de referência, caso bidimensional, ou a um plano de referência, caso tridimensional.Na figura 2.7, há o espelhamento de um objeto em torno do eixo y em relação ao plano xye em torno do eixo z em relação ao plano xz. Em ambos os casos, o ângulo de rotação é180°.A matriz de rotação em torno de um eixo genérico (fig. 2.8) não é complexa, porémtrabalhosa em termos de dedução, assim, será apresentado apenas a matriz MGR quepermite esta operação. Sendo N um vetor unitário de coordenadas (x,y,z) e θ o ângulo derotação, tem-se:
  8. 8.  tx 2 + c txy − sz txz + sy    MGR = txy + sz ty 2 + c tyz − sx  (eq. 2.18) txz − sy tyz + sx tz 2 + c   Onde: x,y,z = coordenadas de N t = 1- cos(θ) s = sin(θ) c = cos(θ) Fig. 2.6: Rotação em Torno do Eixo “x” Fig. 2.7: Espelhamento y, y* → j → β n N γ α Q θ → i → S k φ P* P O x, x* z, z* Figura 2.8: Determinação da matriz de rotação em torno de um eixo genérico.2.4 Cisalhamento
  9. 9. Outra transformação afim importante de ser estudada é o cisalhamento (shear), cujoexemplo clássico para o sistema de coordenadas bidimensional que explica a sua função é oda italização de um caracter (fig. 2.9). Neste caso, há uma variação no valor da coordenadax em função do valor da y (fig. 2.9 i_1 e i_2), sendo MTS_1 a matriz de transformaçãocorrespondente. Pode-se associar uma outra transformação a de cisalhamento, como, porexemplo, o escalamento da coordenada y (fig. 2.9 i_3), conforme exemplificado emMTS_2. A matriz MTS_3 ilustra o uso desta transformação para o caso tridimensional. i_1 i_2 i_3 Figura 2.9: Exemplo de cisalhamento 1 sh x  1 sh x  MTS_1 =   MTS_2 =   0 1  0 e y  y y x x z z Figura 2.10: Exemplo de cisalhamento no caso 3D. 1 0 s x    MTS_3 = 0 1 s y  0 0 1   2.5 Composição de Transformações
  10. 10. Uma importante questão que sempre deve ser considerada com relação as transformaçõesafins se refere a sua composição. Neste caso, a ordem em que elas são executadas podealterar o resultado final esperado. Considere-se então duas transformações afins, umasomente de rotação de 45° em torno do eixo z e outra somente de translação de valor ∆x aolongo do eixo x. Como a rotação é realizada em relação a origem do sistema decoordenadas, considerando-se a figura 2.11.a, a aplicação primeiro da rotação e depois datranslação resulta na figura 2.11.b e o inverso na figura 2.11.c. y y y x x x z z z Figura 2.11.a Figura 2.11.b Figura 2.11.c Figura 2.11: Composição de transformações. y y y y y x x x z x z x z z z Figura 2.12: Mudança de centro de rotação.Neste sentido, caso se deseje rotacionar um objeto no espaço em torno de um ponto internoa ele, deve se primeiramente deslocar o centro de rotação (origem dos eixos) para esteponto, proceder a rotação e posteriormente voltar o centro de rotação a sua posição inicial(fig. 2.12). Note-se que isto equivale a deslocar o objeto para o centro de coordenadas.3. Coordenadas Homogêneas
  11. 11. Como detalhado no capítulo 2, uma transformação afim segue a forma: r r r v′ = M v + b (eq. 3.1)Esta formulação é, em termos de cálculo, bastante inconveniente para se determinar ascoordenadas do vetor final, após uma série de transformações de um vetor inicial. Aformulação da equação 3.4 é muito mais conveniente porque permite que o cálculo demúltiplas transformações seja realizado calculando-se a matriz de transformação resultantee aplicando-se esta matriz sobre o vetor (eq. 3.5). r r r v1 = M1 v + b1 (eq. 3.2) r v r r v2 = M2 M1 v + M 2 b1 + b 2 (eq. 3.3) r r v′ = M v (eq. 3.4) r v′ = Mn M n −1 ... r M1 v (eq. 3.5)A impossibilidade de se inserir a transformação de translação na matriz M não permite que aformulação 3.5 seja usada, assim, é necessário se encontrar um mecanismo que contorne esteproblema. A solução usual para este problema é a alteração do espaço de coordenadas dedimensão 3 para 4, de forma controlada, de maneira que a dimensão da matriz M se altere de3x3 para 3x4 e, assim, ela possa incorporar a transformação de translação (eq. 3.6). Como éinconveniente operar uma matriz não quadrada por não permitir, por exemplo, o cálculo dainversa, a matriz MT pode ser novamente modificada pela inserção de mais uma linha quenão altere o resultado final (eq. 3.7). (eq. 3.6) (eq. 3.7)  x′ x  x+l  1 0 0 l  y ′ 1 0 0 l     y + m 0 y 1 0 m   = 0 1 0 m   =   MT =    z′    z z+n 0 0 1 n   0 0 1 n      1      1    1  0 0 0 1Considerando-se uma matriz M genérica de dimensão 4x4, quando ela é aplicada sobre o r rvetor v , em coordenadas homogêneas, gera o vetor v * descrito a seguir: Para se calcular o r rvetor desejado, normaliza-se o vetor v * . Assim, supondo-se H ≠ 0 , tem-se v ′ . x X  X / H  y Y  Y / H  v r v* = M   =   ⇒ v′ =   z Z Z / H 1  H         1 
  12. 12. Neste contexto, uma propriedade interessante e bastante útil das coordenadas homogêneasse refere a representação de um ponto no infinito. Assim, considere-se o ponto sobre o eixo r vx indicado pelo vetor v * e v ′ :  A  A / H  0  0  r   r v* = ⇒ v′ =    0  0      H   1 Quando H → 0 , A / H → ∞ , logo a aplicação de uma matriz de transformação emcoordenadas homogêneas resulta em um ponto no infinito quando o seu vetor posicional r r r rfor do tipo v * descrito a seguir. Em geral, utiliza-se os vetores infinitos x * , ∞ y* e z * . ∞ ∞  A 1 0 0  B 0 1 0 r r* r* r* v* =   x∞ =   y∞ =   z∞ =   C  0 0 1         0 0 0 0Estes vetores infinitos serão, em especial, usados na determinação de pontos-de-fuga nocaso de projeções planares perspectivas. Outras propriedades das coordenadas homogêneasserão exploradas posteriormente. Também posteriormente será mostrado que a matriz detransformação M de dimensão 4x4, pode ser particionada em 4 quatro partes: 3x 3 3x1 M =   1x 3 1x1 1x3: produz projeção perspectiva 1x1: produz escalamento global 3x3: produz uma transformação afim 3x1: produz translação do tipo, rotação e escalamento4. Projeções PlanaresDado que a exibição de um objeto 3D em uma tela de computador ou em uma folha depapel exige o mapeamento de um sistema de coordenadas 3D em um 2D, operações deprojeção são requeridas. Em geral, entende-se como projeção, o processo de mapear umsistema de coordenadas de dimensão “n” em um de dimensão menor ou igual a “n-1”.As projeções mais consideradas em CG são as que projetam um sistema de coordenadas 3Dem um 2D, realizam a projeção em um plano ao invés de uma superfície curva, comotambém utilizam raios projetores lineares ao invés de curvos (fig. 4.1). Esta classe de
  13. 13. projeções é conhecida como “projeções geométricas planares” e podem ser subclassificadasde acordo com o esquema da figura 4.2 Proj. Proj. Proj. Planar Cilindrica Cônica Figura 4.1: Diferentes tipos de projeções Proj. Planares Paralelas Perspectivas Ortográficas Oblíquas Um-Ponto Planta Dois-Pontos Cabinet V. Frontal Cavalier Três-Pontos V. Lateral Axonométricas Isométricas Dimétricas Trimétricas Figura 4.2: Árvore de Classificação das Projeções4.1 Classificação das Projeções PlanaresAs projeções planares paralelas e perspectivas diferem com relação a distância do plano deprojeção ao centro de projeção. Se a distância é finita, a projeção é perspectiva, se adistância é infinita, a projeção é paralela (fig. 4.3).4.2 Projeções Planares ParalelasProjeções paralelas são subclassificadas em ortográficas e oblíquas, dependendo da relaçãoentre a direção dos raios projetores e a normal ao plano de projeção (fig. 4.4). Emprojeções ortográficas, as direções são as mesmas. Em projeções oblíquas, são diferentes.
  14. 14. As projeções ortográficas vista lateral, vista frontal e planta constituem as projeçõesnormalmente utilizadas em desenho técnico (fig. 4.5). Elas oferecem uma visão parcial doobjeto, no entanto, mantém sem alteração as relações de dimensões e ângulos do objetoprojetado. Estas projeções são geralmente utilizadas em conjunto, contando também comuma projeção axonométrica ou perspectiva.As projeções paralelas ortográficas axonométricas tem a direção dos raios projetores e anormal ao plano de projeção coincidentes, porém distintas da direção das normais dosplanos dos eixos cartesianos. Desta forma, permitem a visualização de várias faces de umobjeto de uma única vez (fig. 4.6).Projeções axonométricas distorcem os objetos, alterando relações de ângulos e dimensõesde lados dos objetos, no entanto, mantém relações de paralelismo entre eles. A alteração dadimensão dos lados é relacionada com a alteração da dimensão dos versores em cada umdos eixo x, y e z, quando projetados no plano. Assim, projeções axonométricas sesubdividem em dimétricas, dois versores variam a dimensão igualmente quando projetadosno plano, isométricas, os três versores variam na mesma proporção (fig. 4.7) e trimétricas,os três versores variam de forma diferenciada.As projeções paralelas oblíquas tem a direção da normal ao plano de projeção distinta dadireção dos raios projetores (fig. 4.7). As projeções paralelas oblíquas se subdividem emcavalier e cabinet (fig. 4.8). Na cabinet há um encolhimento na dimensão do versorperpendicular ao plano de projeção para corrigir a ilusão de que o objeto exibido é maiorna direção deste versor. C. de Projeção no Infinito A A’ A B’ A’ B C. de Projeção B’ no Finito B Raios Projetores Figura 4.3: Centros de projeções
  15. 15. r r r r r r N NFigura 4.4: Direção da normal ao plano e dos raios projetores. Planta Vista Lateral Vista FrontalFigura 4.5: Projeções ortográficas planta, vista lateral e frontal. Figura 4.6: Projeções ortográficas axonométricas.
  16. 16. y Dimétrica Isométrica x y’ z y’ x’ x’ Figura 4.7: Projeções ortográficas axonométricas dimétrica e isométrica.4.3) Projeções Planares PerspectivasO efeito visual de uma projeção perspectiva é bastante realístico, pois as dimensões de umobjeto projetado variam inversamente com relação ao centro de projeção, o que está deacordo com o modo de funcionamento do sistema visual humano. Além disto, como asprojeções axonométricas, elas permitem a visualização conjunta de várias faces de umobjeto. No entanto, as projeções perspectivas não são úteis para documentar precisamenteas formas de um objeto, dado que as dimensões e os ângulos dos seus lados podem sofreralterações após a projeção. Em especial, pode haver perda do paralelismo entre as linhas. Figura 4.8: Projeções oblíquas.
  17. 17. Cavalier Cabinet Cavalier Cabinet Figura 4.9: Projeções Oblíquas Cavalier e CabinetComo a projeção perspectiva tem o centro de projeção localizado em um ponto finito,ocorre uma distorção no objeto projetado que faz com que qualquer conjunto de linhas quenão sejam paralelas ao plano de projeção converjam para um mesmo ponto denominadoponto-de-fuga. O surgimento do ponto-de-fuga pode ser melhor compreendido observando-se as figuras 4.10 e 4.11.Na figura 4.10, um raio projetor parte do centro de projeção e incide sobre um ponto p dalinha l_B. Quando p tende a infinito, o raio projetor vai encontrar este ponto no infinito, oque significa que a linha RP vai ficar paralela a linha l_B, cruzando, assim, o plano xsempre no mesmo ponto pf. Note-se que um ponto sobre a linha l_A, paralela a linha l_B,vai ser alcançado no infinito de forma similar ao ponto sobre a linha l_B, ou seja, o raioprojetor corta o eixo x no mesmo ponto pf.Quando o raio projetor incide sobre uma linha paralela ao eixo de projeção, não se tem ponto-de-fuga. A explicação para este caso é simples, considere-se o ponto A da figura 4.11 que estásobre a linha l_A, paralela ao plano xy, assim, quando A tender a infinito, o raio projetor RP1vai encontrá-lo no infinito e, neste caso, estará paralelo ao plano xy, o que evita o surgimentodo ponto-de-fuga. Ao contrário, o raio projetor RP2 que incide sobre o ponto B sobre a linhal_B, perpendicular ao plano xy, vai tender ao ponto O quando B tender a infinito. Neste caso,a projeção perspectiva do retângulo da figura 4.11 vai apresentar apenas um ponto-de-fuga.Para que a projeção deste retângulo apresente mais de um ponto-de-fuga basta rotacioná-lo(fig. 4.12), o que faz com as suas linhas paralelas fiquem inclinadas em relação ao plano xy.Para melhor se compreender a relação entre os pontos-de-fuga e o centro de projeção, afigura 4.13 apresenta a forma de se obter a projeção perspectiva de um paralelepípedo comlados paralelos ao eixo x e centro de projeção sobre o eixo z. O objeto é projetado dosistema de coordenadas 3D xyz no sistema de coordenadas 2D x’y’. Dado que a dimensão
  18. 18. dos lados AB, CD, EF e GH não são visíveis, a dimensão dos lados A’B’, C’D’, E’F’ eG’H’ foram definidas arbitrariamente. B z z l_A p A RP l_B pf pXY pf pXY l_B RP1 RP2 l_A CP CP Figura 4.10 Figura 4.11 Figura 4.10: Centro de projeção e ponto-de-fuga em uma projeção perspectiva. Figura 4.11: Projeção perspectiva de linhas paralelas e perpendiculares ao plano XY de projeção. z A B pXY pf_2 pf_1 CP Figura 4.12: Projeção perspectiva de linhas inclinadas em relação ao plano de projeção.
  19. 19. z C,D A,B E,F G,H PF_1 PF_2 y CP C’ E’ A’ G’ B’ F’ y’ H’ x’Fig. 4.13: Projeção perspectiva de um cubo com lados paralelos ao eixo x. y y x x z Figura 4.14: Projeção perspectiva com um ponto-de-fuga.
  20. 20. PF-1 PF-2 Figura 4.15: Projeção perspectiva com dois pontos-de-fuga. PF-1 PF-2 PF-3 Figura 4.16: Projeção perspectiva com três pontos-de-fuga.Em função do número de pontos-de-fuga associados as linhas paralelas aos três eixoscartesianos, as projeções perspetivas se subdividem em projeções de um ponto-de-fuga(fig. 4.14), de dois pontos-de-fuga (fig. 4.15) e de três pontos-de-fuga (fig. 4.16). Note-seque cada conjunto de linhas paralelas no espaço pode ter associado um ponto-de-fuga.Assim, com o objetivo de definir um critério de classificação, somente as linhas paralelasaos eixos são consideradas.Projeções perspectivas de três pontos-de-fuga são usadas menos frequentemente, dado queelas acrescentam pouco realismo ao já alcançado pelas projeções de dois pontos-de-fuga.
  21. 21. 5. Álgebra das Projeções Planares ParalelasPara que as projeções possam ser geradas em computador é necessário se definir matrizesde transformações que, aplicadas ao conjunto de pontos de um objeto tridimensional,permita a obtenção da figura projetada do objeto. Assim, a seguir, para cada tipo deprojeção serão determinadas as matrizes de transformação. Este capítulo cobre a álgebradas projeções planares paralelas.5.1 Álgebra das Projeções Planares Paralelas OrtográficasAs projeções planares ortográficas vista lateral, frontal e planta são obtidas de formabastante simples através de rotações ortogonais, de acordo com as regras abaixo, e projeçãono plano xy através de raios projetores perpendiculares a este plano (fig. 4.5) vista lateral - rotaciona de -90° no eixo x, elimina coordena z vista frontal - rotaciona de 90° no eixo y, elimina coordena z planta - sem rotação, elimina coordena zDada a simplicidade do processo de projeção neste caso, é detalhado apenas a geração davista lateral. Assim, partindo-se da equação de rotação em torno do eixo x, determina-se amatriz de projeção da vista lateral MPvl (eq. 5.2). 1 0 0 0 0 cos(θ ) − sen(θ ) 0 RX =   (eq. 5.1) 0 sen(θ ) cos(θ ) 0   0 0 0 1Sendo θ = -90° e considerando-se a projeção no eixo xy, a matriz fica: 1 0 0 0 0 0 1 0 MPVL =   (eq. 5.2) 0 0 0 0   0 0 0 1Note-se que o versor sobre o eixo z, (0,0,1), será projetado em (0,1), como exemplificadonas figuras 5.1a e 5.1b. Observe-se a ordem correta dos eixos, pois eles estão invertidos emrelação aos da figura 4.7.5.2 Álgebra das Projeções Planares Paralelas Ortográficas AxonométricasAs projeções vista lateral, frontal e planta permitem uma observação parcial do objetoprojetado, em especial, caso se observe apenas uma delas, não é possível se concebercorretamente a forma do objeto. De forma a solucionar este problema, é usual a folha deprojeto de um objeto conter as projeções vista lateral, frontal e planta, mais uma projeçãoaxonométrica, a qual permite que se tenha uma visão mais integrada do objeto.
  22. 22. Figura 5.1a e 51.b: Projeção vista lateral.Como citado no capítulo 4, as projeções paralelas ortográficas axonométricas tem a direçãode projeção e a normal ao eixo de projeção não coincidentes com a direção de um dos eixosprincipais (fig. 4.6). Isto é equivalente a se rotacionar adequadamente o objeto e considerara direção de projeção e a normal ao eixo de projeção coincidentes com a direção de um doseixos principais.Nas projeções axonométricas há uma alteração da dimensão dos lados do objeto quandoprojetados sobre o plano. O tipo de rotação do objeto e as considerações sobre a alteraçãodas dimensões permitem que se determine as matrizes de projeção. Neste sentido, o cálculodestas matrizes vai partir de uma rotação do objeto em torno do eixo y e posteriormente doeixo x (eq. 5.3). 1 0 0 0  cos(φ ) 0 sen(φ ) 0 0 cos(θ ) − sen(θ ) 0  0 1 0 0 RX RY =     (eq. 5.3) 0 sen(θ ) cos(θ ) 0 − sen(φ ) 0 cos(φ ) 0     0 0 0 1  0 0 0 1  cos(φ ) 0 sen(φ ) 0  sen(φ ) sen(θ ) cos(θ ) − cos(φ ) sen(θ ) 0 RX RY =   (eq. 5.4) − sen(φ ) cos(θ ) sen(θ ) cos(φ ) cos(θ ) 0    0 0 0 1Aplicando-se esta matriz sobre os vetores unitários (1,0,0), (0,1,0) e (0,0,1), versores noseixos x, y, e z respectivamente, tem-se:
  23. 23. x′X  1  cos(φ )  y′  0  sen(φ ) sen(θ )  r =   = R X RY   =   (eq. 5.5) X u′X z′ X  0 − sen(φ ) cos(θ )         1  1  1   x ′Y  0  0   y′  1 cos(θ )  r =   = R X RY   =   Y u ′Y (eq. 5.6)  z ′Y  0 sen(θ )         1  1  1  x′Z  0  sen(φ )   y′  0 − cos(φ ) sen(θ )  r =   = R X RY   =   (eq. 5.7) Z u′Z  z′Z  1  cos(φ ) cos(θ )         1  1  1 Considerando-se apenas as componentes x e y dos versores rotacionados, tem-se asprojeções destes vetores sobre os plano xy. De forma a se estipular condições para oencolhimento da dimensão destes vetores, é calculado os seus módulos, como ilustrado aseguir. Assim, para o caso da projeção do versor sobre eixo x tem-se: r u x XY = ( x ′ x)2 ( ) + y′ x 2 (eq. 5.8) r u x XY = cos2 (φ ) + (sen 2 (φ ) sen 2 (θ )) (eq. 5.9)Similarmente, para os versores sobre os eixos y e z tem-se: r u y XY = cos(θ ) (eq.5.10) r u z XY = (sen 2 (φ ) + cos2 (φ ) sen 2 (θ ) (eq. 5.11)Considerando-se que no momento da projeção de um objeto 3D sobre o plano xy, ocorraum encolhimento por igual das coordenadas x e y dos pontos deste objetos, tem-se: r r u x XY = u y XY (eq. 5.12) cos2 (φ ) + sen 2 (φ ) sen 2 (θ ) = cos2 (θ ) (eq. 5.13)Da trigonometria tem-se:
  24. 24. cos2 (α ) + sen 2 (α ) = 1 (eq. 5.14)Aplicando-se esta relação na equação 5.13, tem-se: sen 2 (φ ) sen 2 (θ ) = sen 2 (φ ) − sen 2 (θ ) (eq. 5.15) sen 2 (φ ) = sen 2 (θ ) / (1 − sen 2 ( θ )) (eq. 5.16)Uma maneira simples de se calcular os ângulos θ e φ é considerar um valor fixo para oencolhimento no eixo z. Assim, inicialmente será suposto que a dimensão do versorprojetado será 1/2, ou seja, encolherá pela metade. Logo, da equação 5.11 tem-se: sen 2 (φ ) + cos2 (φ ) sen 2 (θ ) = (1 / 2) 2 (eq. 5.17)Aplicando-se a equação 5.15 e rearranjando, tem-se: 8 sen 4 (θ ) − 9 sen 2 (θ ) + 1 = 0 (eq. 5.18)Fazendo-se sin 2 (θ ) = x , tem-se: 8x 2 − 9 x + 1 = 0 (eq. 5.19)Resolvendo-se a equação 5.19, tem-se x=1/8 e x=1. A segunda raiz é inválida porqueorigina valor zero no denominador da equação 5.15. Usando-se a primeira raiz tem-se: sen 2 (θ ) = 1 / 8 ⇒ sen 2 (φ ) = 1 / 7 (eq. 5.20) ∴ θ = 20.705o e φ = 22.208o (eq. 5.21)Desta maneira aplicando-se os valores obtidos na equação 5.21, tem-se a seguinte matriz:  0.925820 0. 0.377964 0  0133631 0.935414 − 0.327321 . 0 R X RY =   (eq. 5.22) − 0.353553 0.353553 0.866025 0    0. 0. 0. 1 0.925820 0. 0.377964 0  0133631 0.935414 − 0.327321 . 0 MP D =   (eq. 5.23)  0. 0. 0. 0    0. 0. 0. 1A matriz MPD anterior permite que se realize, após o zeramento da coordenada z, aprojeção dimétrica (eq. 5.22), onde há o encolhimento por igual de duas coordenadas. No
  25. 25. entanto, o maior interesse é na projeção isométrica que permite o encolhimento por igual detodas as coordenadas. Logo: r r r u x XY = u y XY = u z XY (eq. 5.24)Assim, além da equação 5.13, para a determinação dos ângulos tem-se a seguinte equação: sen 2 (φ ) + cos2 (φ ) sen 2 (θ ) = cos2 (θ ) (eq. 5.25)Similarmente a equação 5.16, derivada da 5.12, podemos derivar da 5.25 a equação: sen 2 (φ ) = (1 − 2 sen 2 (θ )) / (1 − sen 2 (θ )) (eq. 5.26) ∴ sen 2 (θ ) = 1 − 2 sen 2 (θ ) ⇒ sen 2 (θ ) = 1 / 3 sen(θ ) = 1 / 3 ⇒ sen(φ ) = 1 / 2 (eq. 5.27) θ = 35.26429 o e φ = 45.0o (eq. 5.28)Logo, substituindo os valores na matriz da equação 5.4, tem-se a matriz que permite aprojeção isométrica (5.29), após se zerar a coordenada “z”:  0.707107 0. 0.707107 0  0.408248 0.816597 − 0.408248 0 R X RY =   (eq. 5.29) − 0.577353 0.577345 0.577353 0    0. 0. 0. 1 0.707107 0. 0.707107 0 0.408248 0.816597 − 0.408248 0 MP I =   (eq. 5.30)  0. 0. 0. 0    0. 0. 0. 1Neste caso, um fato interessante advém da análise do ângulo que o versor no eixo x fazcom o eixo x’, quando projetado no plano x’y’ (fig. 5.2a).Assim, da equação 5.5, tem-se: r  cos(φ )  uX =   (eq. 5.31) sen(φ ) sen(θ )  ∴ tan(α ) = (sen(φ ) sen(θ )) / cos(φ ) tan(α ) = ( 1 / 2 1 / 3 ) / 1 / 2 = 3 / 3 ⇒ α = 30.0o
  26. 26. Este resultado é bem conhecido de desenhistas, pois é com um esquadro de 30° e 60° queeles desenham a projeção de um objeto em uma folha de projeto.A seguir é esboçado como se obtém uma projeção isométrica de um objeto. Este objeto é o rda figura 4.7, e a matriz PI contém a descrição dos vetores posicionais de seus pontos (fig.5.3a). O resultado está na figura 5.3b. Figura 5.2a e 5.2b: Diferentes estruturas para a projeção isométrica. Figura 5.3a: Objeto a ser projetado. Figura 5.3b: Objeto projetado isometricamente.
  27. 27. 1 1 1 1 0 0 0 0 0 1 1/ 2 0 0 1 1/ 2 0 r   PI = M I 0 0 1 1 0 0 1 1 (eq. 5.32)   1 1 1 1 1 1 1 1 A  B C D E F G H Uma consideração importante sobre projeções isométricas se refere ao fato que: sen 2 (θ ) = 1 / 3 ⇒ θ = 35.26o ou θ = 144.74 o sen 2 (φ ) = 1 / 3 ⇒ φ = 45.00o ou φ = 135.00oLogo, a projeção isométrica pode ser estruturada de outras formas. Na figura 5.2 éesboçada a estrutura trabalhada anteriormente (5.2a) e outra bastante utilizada (5.2b).5.3 Álgebra das Projeções Planares OblíquasSegundo o que foi exposto no capítulo 4, as projeções paralelas oblíquas tem a direção doplano de projeção distinta da direção dos raios projetores (fig. 4.8). As projeções paralelasobliquas se subdividem em cavalier e cabinet (fig. 4.9), sendo que na projeção cabinet háuma distorção na dimensão do versor perpendicular ao plano de projeção, em geral, umencurtamento de 1/3 ou de 1/2. Além disto, em ambos os casos, o ângulo (α) que esteversor forma com o eixo x pode ser de 45° ou 30°.A dedução da matriz de projeção oblíqua é relativamente simples. Considere-se,inicialmente, o ângulo β que a linha entre o ponto P1 e sua projeção P1’ forma com o eixoz e o ângulo α que é formado pela projeção da linha P1-P1’ com o eixo x (fig. 5.4). Oângulo β determina o grau de encurtamento ou de dilatação da dimensão do versor, emespecial, se β=45.0° não há alteração de dimensão e se β=60° há um encurtamento pelametade. O ângulo α não tem influência sobre o tamanho do versor e, basicamente, o seuvalor é uma questão de preferência.Quando o ponto está sobre o eixo z é trivial a dedução da fórmula de projeção, ou seja,sendo: P1 = (0,0, z1 ) ⇒ P1′ = (d cos(α ), d sen(α )) P2 = (0,0, z2 ) ⇒ P2 ′ = (( z2 / z1 ) * d ) cos(α ),(( z2 / z1 ) * d ) sen(α ))A generalização da formulação para qualquer ponto pode também ser feita facilmenteobservando-se a figura 5.5. Assim, supondo-se z1 igual a 1 e z2 igual a z, tem-se: P2 = (0, b, z ) ⇒ P2 ′ = ( z * d cos(α ), b + ( z * d ) sen(α )) P3 = (a ,0, z) ⇒ P3′ = (a + ( z * d ) cos(α ),( z * d ) sen(α ))Logo:
  28. 28.  x ′ 1 0 d cos(α ) 0 x  x + (( z * d ) cos(α ))   y ′ 0 1 d sen(α ) 0  y  y + (( z * d ) sen(α ))    =     =   (eq. 5.33)  z′  0 0 0 0 z  0          1 0 0 0 1 1  1 Para exemplificar a aplicação da matriz de projeção oblíqua, na matriz da equação 5.33 seráadotado d=1, sem alteração da dimensão do versor, o que significa (β=45.0°), e α=45.0°, oque define uma matriz de projeção obliqua cavalier (eq. 5.34). 1 0 2 /2 0   0 1 2 /2 0 MO =  (eq. 5.34) 0 0 0 0   0  0 0 1  Figura 5.4: Esquema de projeção oblíqua.Aplicando-se MO sobre o objeto definido na equação 5.32, tem-se: 1 1 1 1 0 0 0 0 0 1 1/ 2 0 0 1 1/ 2 0 r   PO = M O 0 0 1 1 0 0 1 1 (eq. 5.35)   1 1 1 1 1 1 1 1 A  B C D E F G H 
  29. 29. 1 1 (2 + 2) / 2 ( 2 + 2) / 2 0 0 2 /2 2 / 2   0 1 (1 + 2) / 2 2 /2 0 1 (1 + 2 ) / 2 2 / 2rPO = 0 0 0 0 0 0 0 0  (eq. 5.36)   1 1 1 1 1 1 1 1  A B C D E F G H    d Figura 5.5: Projeção oblíqua de pontos fora do eixo base de projeção.Note-se que o objeto projetado (fig. 5.6) fica com o sentido das faces invertido em relaçãoao eixo z, ou seja, as faces paralelas ao plano xy e com coordenadas z maior ficamposicionadas na projeção atrás daquelas com coordenadas z menor, o que é o caso da facemenor posicionada em relação a face maior. Este fato pode ocasionar alguma confusão euma solução simples para este problema é considerar o ângulo α=(180+45)°. Esta rotaçãocorrige o problema da ordem das faces e ao mesmo tempo mantém o ângulo entre aprojeção do versor do eixo z e o eixo horizontal igual a 45° (fig. 5.7). Assim, a nova matrizde projeção fica: 1 0 − 2 /2 0   0 1 − 2 /2 0 MO =  (eq. 5.33) 0 0 0 0    0 0 0  1Aplicando-se esta nova matriz MO sobre os pontos do objeto definido na equação 5.30,tem-se os pontos projetados descritos na equação 5.34 e esboçados na figura 5.8.
  30. 30. 1 1 (2 − 2 ) / 2 ( 2 − 2) / 2 0 0 − 2 / 2 − 2 / 2   0 1 (1 − 2) / 2 − 2 / 2 0 1 (1 − 2 ) / 2 − 2 / 2rPO = 0 0 0 0 0 0 0 0    1 1 1 1 1 1 1 1  A B C D E F G H    (eq. 5.34) G C F B H D A E Figura 5.6: Objeto e sua projeção oblíqua cavalier com α=45°. P2´ P1´ 180° α P1´ P2´ Figura 5.7: Rotação da projeção de 180.0°
  31. 31. F B E A G C H D Figura 5.8: Objeto e sua projeção oblíqua cavalier com α=(180+45)°.6. Álgebra das Projeções Planares PerspectivasPara uma dedução simples e intuitiva da álgebra das projeções perspectivas é interessantese analisar a figura 6.1. Neste caso, o ponto P (x,y,z) é projetado no ponto P’ (x’,y’,0),contido no plano xy, a partir de um centro de projeção localizado no ponto C (0,0,k).Aplicando-se semelhança de triângulos a figura produzida e considerando que acoordenada z tem valor negativo obtém-se: x ′ / k = x / ( − z + k ) ⇒ x ′ = x / (( − z / k ) + 1) (eq. 6.1) y ′ / k = y / ( − z + k ) ⇒ y ′ = y / (( − z / k ) + 1) (eq. 6.2)Note-se que estes valores são os mesmos produzidos pela matriz de transformação abaixo. X  1 0 0 0 x  x  Y  0 1 0 0  y  y    =     =   (eq. 6.3) Z  0 0 1 0 z  z          H 0 0 −1/ k 1 1 ( − z / k ) + 1  x ′  X / H  x / (( − z / k ) + 1)   y ′ Y / H   y / (( − z / k ) + 1)    =   =   (eq. 6.4)  z′  Z / H   z / (( − z / k ) + 1)        1  1   1 
  32. 32. P Y y P’ y z x x k X Z CP Figura 6.1: Projeção de um ponto no plano a partir de um centro de projeção.Quando se adota o plano xy como o plano de projeção, desconsidera-se o valor de z’ naequação 6.3. Note-se que nesta equação quando k → ∞ , então x ′ → x e y ′ → y , oque origina uma projeção paralela, com raios projetores perpendiculares ao plano xy,considerado como o plano de projeção.Considerando-se x = at, y = bt e z = -ct, com a, b, e c maiores do que zero, tem-se:  x ′   at / ((ct / k ) + 1)   x ′   ka / c  y ′   bt / ((ct / k ) + 1)   y ′   kb / c    =  t→∞ ⇒   =   z ′  − ct / ((ct / k ) + 1)   z′   − k          1  1  1  1 Logo, o ponto (ka/c, kb/c, -k) constitui um ponto-de-fuga, dado que ele é um ponto finitopara o qual converge a projeção de uma linha infinita. Dependendo do valor de a, b e c,dado k fixo, infinitos pontos-de-fuga podem ser determinados.Em termos de classificação da projeção perspectiva interessa apenas os pontos-de-fugaassociados as linhas paralelas aos eixos cartesianos. Assim, considere-se: at  a  a  b  bt  b  r r r   , v =   , v =   v1 = c 2 c 3 ct        1 1 1 r r r v1 , v2 e v3 definem, respectivamente, uma linha paralela ao eixo x, y e z. Atransformação dos pontos destas linhas quando t → ∞ resulta em:
  33. 33. (eq. 6.5) (eq. 6.6) (eq. 6.7) at / (( − c / k ) + 1)  a / (( − c / k ) + 1)   a / (( − ct / k ) + 1)   b / (( −c / k ) + 1)  bt / (( −c / k ) + 1)   b / (( − ct / k ) + 1)  r r r v1′ =  ′ , v2 =  , v ′ =    c / (( −c / k ) + 1)   c / (( − c / k ) + 1)  3 ct / (( − ct / k ) + 1)        1  1   1  ∞  A2   0  B  ∞  0  r r r v1′ =     v3 =   1 ⇒ v2 = ′ ′ C1  C2  − k        1 1  1  r r ′ ′Mesmo sendo B1, C1, A2 e C2 constantes finitas, v1 e v2 , que são respectivamente a r rtransformação perspectiva de v1 e v2 , resultam em pontos que no espaço tendem ainfinito, ou seja, não há pontos-de-fuga associados as linhas paralelas aos eixos x e y. Este r rresultado é esperado, pois v1 e v2 definem linhas perpendiculares ao eixo z que contém o rcentro-de-projeção. A transformação perspectiva de v3 resulta em um ponto finito no respaço, ou seja, há ponto-de-fuga pois v3 é perpendicular ao eixo z que contém o centrode projeção. B A PI y A* A’ B* B’ PF -k x k z Figura 6.2: Projeção de uma linha paralela ao eixo z.Derivando-se a figura 6.2 da 6.1, pode-se visualizar facilmente o surgimento do ponto-de-fuga. Os pontos A’ e B’ são as projeções no plano xy dos pontos AB da linha A-Bperpendicular ao plano de projeção. Note-se que considerando a coordenada z, os pontos
  34. 34. A* e B* mostram como a transformação perspectiva força a convergência dos pontos rtransformados para o ponto-de-fuga. Para t=0, v3 resulta no ponto PI (a, b, 0), que é oponto que a linha AB extendida intercepta o plano. Os pontos A* e B* estão na linha PI-PFe, assim, quando B→∞, B*→PF e B’→(0,0), o que faz com que todos os pontos projetadosno plano estejam na linha limitada pelos pontos (a,b) e (0,0).Em especial, observando a figura 6.2 e as equações 6.5, 6.6 e 6.7 compreende-se o mecanismode funcionamento da transformação perspectiva. O surgimento do ponto-de-fuga no eixo z sedeve ao fato de que na equação 6.7 o denominador tende a infinito quando t→∞ e, assim, asconstantes divididas por um valor infinito resultam em zero e o valor infinito do numeradordividido pelo valor infinito do denominador resulta em um valor finito.Note-se que estes mesmos resultados são obtidos quando se aplica a matriz detransformação perspectiva sobre pontos infinitos em coordenadas homogêneas em cada umdos eixos, conforme descrito a seguir. Logo, em termos classificatórios, a matriz daequação 6.3 é uma matriz de transformação perspectiva de um ponto-de-fuga. (eq. 6.8) (eq. 6.9) (eq. 6.10) 1 0 0 0 1 0 r r r   , v =   , v =   v1 = 0 2 0 3 1       0 0 0 1 0  0  0 1  0  r r r   , v′ =   , v′ =   v1′ = 0 2 0 3 − k        0 0  1 Utilizando a mesma linha de raciocínio anterior deduz-se que as matrizes MTPx e MTPygeram pontos-de-fuga nos eixos x e y, respectivamente. Estas matrizes e a MTPz, que geraponto-de-fuga no eixo z, são descritas a seguir. Lembre-se que estas matrizes são matrizesde transformação perspectiva de um ponto-de-fuga.  1 0 0 0 1 0 0 0 1 0 0 0  0 1 0 0 0 1 0 0 0 1 0 0MTPx =   MTPy =   MTPz =    0 0 1 0 0 0 1 0 0 0 1 0       − 1 / r 0 0 1 0 − 1 / s 0 1 0 0 − 1 / k 1
  35. 35. Matrizes de transformação perspectiva de dois ou três pontos-de-fuga são obtidas atravésda combinação destas matrizes, por exemplo:  1 0 0 0  1 0 0 0  0 1 0 0  0 1 0 0 MTPxy =   , MTPxyz    0 0 1 0  0 0 1 0     − 1 / r − 1 / s 0 1 − 1 / r − 1 / s − 1 / k 1A certificação do número de pontos-de-fuga destas matrizes é obtida através da aplicaçãodos pontos infinitos em coordenadas homogêneas. Assim, inicialmente, utilizando-se amatriz MTPxy e os pontos definidos pelos vetores das equações 6.8, 6.9 e 6.10 tem-se: − r  0 0 0  − s 0 r r r v1′ =   , v2 =   , v3 =   ′ ′ 0 0 1       1 1 0Como foram gerados dois pontos-de-fuga, a matriz MTPxy é uma matriz de transformaçãoperspectiva de dois pontos-de-fuga. Similarmente, aplicando-se a matriz MTPxyz sobre ospontos no infinitos tem-se: − r  0  0  0  − s  0  r r r   , v′ =   , v′ =   v1′ = 0 2 0 3 − k        1 1  1 Logo, a matriz MTPxyz é uma matriz de transformação perspectiva de três pontos-de-fuga.Para aplicações em computação gráfica, o requerido é a “projeção” perspectiva sobre oplano xy,. Assim, as matrizes de projeção perspectiva são obtidas zerando-se a terceiralinha da matriz de transformação perspectiva, de forma a se desconsiderar a coordenada z.Por exemplo, da matriz de transformação perspectiva MTPxyx, deduz-se a matriz deprojeção perspectiva MPPxyz descrita abaixo.  1 0 0 0  0 1 0 0 MPPxyz =    0 0 0 0   − 1 / r − 1 / s − 1 / k 1
  36. 36. O objetivo primordial em se utilizar uma projeção perspectiva é a obtenção de uma visãorealística de um objeto. No entanto, somente a aplicação da projeção perspectiva nãogarante este objetivo. Por exemplo, a figura 6.3 mostra o resultado de uma projeçãoperspectiva com pontos-de-fuga (3,0,0) e (0,3,0). Neste caso, a qualidade visual destaprojeção deixa muito a desejar. y y’ x z x’ Figura 6.3: Projeção perspectiva sem rotação.Uma maneira de resolver este problema é utilizar a projeção perspectiva de formaassociada com transformações de escalamento e de rotação. A figura 4.15 mostra uma novavisão do objeto quando ele é rotacionado em torno dos eixos x e y e posteriormenteprojetado através de uma matriz de projeção perspectiva de dois pontos-de-fuga. Nestecaso, é possível se ter uma visão completa do objeto e dos pontos-de-fuga. Note-se, emespecial, como as linhas paralelas convergem para o mesmo ponto-de-fuga após a projeção.Em termos de computação gráfica, o foco de interesse é a projeção de um ponto no espaçosobre o plano da tela. Neste sentido, para ilustrar uma forma mais intuitiva de se obter asequações anteriores, será deduzido a matriz de projeção perspectiva a partir daconsideração de que a tela do computador está sobre o plano xy e que o centro de projeção(observador) está fora deste plano e em alguma parte positiva do eixo z (fig. 6.4).Supondo-se conhecido P1 e CP (fig. 6.4), pode-se escrever a equação de reta que passa porestes dois pontos. No caso bidimensional, a equação da reta em função dos pontos pA(xa,ya) e pB (xb,yb) fica: x = xa + ( xb − xa )u y = y a + ( yb − y a ) uAssim, no caso da figura 6.5 tem-se: x = xc + ( x1 − xc )u (eq. 6.5) y = yc + ( y1 − yc )u (eq. 6.6) z = zc + ( z1 − zc )u (eq. 6.7)
  37. 37. Logo, o valor de u para P2, com coordenadas (x2,y2,0), é: u = − zc / ( z1 − zc ) (eq. 6.8)Compondo-se as equações 6.5, 6.6 e 6.8 tem-se: x2 = xc − zc ( x1 − xc ) / ( z1 − zc ) (eq. 6.9) y2 = yc − zc ( y1 − yc ) / ( z1 − zc ) (eq. 6.10)Escrevendo-se este resultado em forma matricial tem-se:  − zc 0 xc 0   0 −z yc 0  MP =   c (eq. 6.11)  0 0 0 0     0 0 1 − zc Dividindo-se todos os elementos da matriz MP da equação 6.11 por um mesmo valor nãose altera o resultado da sua aplicação sobre um vetor em coordenadas homogêneas. Assim,dividindo-se todos os elementos por 1/zc tem-se: 1 0 − xc / zc 0 0 1 − y c / zc 0 MP =   (eq. 6.12) 0 0 0 0   0 0 − 1 / zc 1Considerando-se xc e yc iguais a zero na MP da equação 6.12, tem-se: 1 0 0 0 0 1 0 0 MP =   (eq. 6.13) 0 0 0 0   0 0 − 1 / zc 1O que está de acordo com a matriz de transformação perspectiva MTPz, deduzidaanteriormente, no caso do centro de projeção estar no ponto (0,0,zc) (fig. 6.2).A matriz MP da equação 6.12 permite um controle explícito do ponto-de-fuga em funçãodo centro de projeção, no entanto, gera apenas um ponto-de-fuga. Para a geração de maispontos-de-fuga pode-se associar MP com matrizes de rotação. Note-se que, como expostono capítulo 4.3 e esboçado nas figuras 4.10, 4.11 e 4.12, caso se rotacione o objeto épossível obter um número maior de pontos-de-fuga. Assim, fazendo-se a multiplicação damatriz MP pela matriz RxRy (equação 5.4) tem-se a equação 6.14:
  38. 38.  cos(φ ) + ( xc / zc) sen(φ ) cos(θ ) ( − xc / zc) sen(θ ) sen(φ ) − ( xc / zc) cos(φ ) cos(θ ) 0   sen(φ ) sen(θ ) + ( yc / zc) sen(φ ) cos(θ ) cos(θ ) − ( yc / zc) sen(θ ) − cos(φ ) sen(θ ) − ( yc / zc) cos(φ ) cos(θ ) 0MPR =   0 0 0 0     (1 / zc) sen(φ ) cos(θ ) ( −1 / zc) sen(θ ) ( −1 / zc) cos(φ ) cos(θ ) 1 Supondo-se zc, sen(φ), sen(θ), cos(φ), cos(θ) diferentes de zero, deriva-se os seguintespontos-de-fuga:  xc + zc(cos(φ ) / (sen(φ ) cos(θ )))  PFx =   (eq. 6.15)  yc + zc(sen(θ ) / cos(θ ))   xc  PFy =   (eq. 6.16)  yc − zc(cos(θ ) / sen(θ ))   xc − zc(sen(φ ) / (cos(φ ) cos(θ )))  PFz =   (eq. 6.17)  yc + zc(sen(θ ) / cos(θ )) Assim, utilizando-se a matriz MPR tem-se o controle simultâneo do centro de projeção edos pontos-de-fuga. Esta matriz pode ser modificada para incorporar rotações no eixo z. y P1 P2 x CP z Figura 6.5: Centro de projeção genérico.7. Uso de Projeções em Sistemas CAD e ModeladoresAtualmente é possível se encontrar no mercado vários sistemas CAD bem comomodeladores. Como não é possível se analisar todos estes produtos, optou-se por estudarapenas os recursos de geração de objetos tridimensionais no AutoCAD e no 3D Studio, istoem função da grande popularidade destes produtos. Os recursos considerados utilizam osconceitos abordados anteriormente.
  39. 39. O AutoCAD permite o trabalho em um sistema de coordenadas tridimensional que pode serreconfigurado através do comando UCS (User Coordinates System). O sistema decoordenadas inicial é denominado de World Coordinate System e identificado pela letra Wno ícone de coordenadas (fig. 7.1). Definido um novo sistema de coordenadas 3D épossível se deslocar a origem do sistema de coordenadas corrente para a origem do novo(fig. 7.2). Além disto, é possível se rotacionar no espaço o sistema de eixos em relação aodo sistema anterior (fig. 7.3). A direção do eixo z é sempre calculada com base na “regra damão direita”. Manipulando o sistema de coordenadas é possível criar um objetotridimensional utilizando-se, por exemplo, um recurso avançado de extrusão, o qualpermite que, definido um caminho, uma forma seja replicada ao seu redor (fig. 7.4). Estetipo de recurso exige que a forma e o caminho não estejam contidos no mesmo plano,assim para definí-los se utiliza o recurso de rotação do sistema de coordenadas.Outra forma para gerar objetos tridimensionais é utilizar operações booleanas de sólidospré-definidos. Este recurso foi utilizado para criar o sólido da figura 7.5.Em termos de diferentes forma de visualização de um objeto, o comando vpoint do AutoCADpermite a definição de um ponto-de-vista a partir do qual o objeto será visto segundo umaprojeção planar paralela ortográfica. O ponto-de-vista define um vetor que parte da origem dosistema de coordenadas corrente e é perpendicular ao plano de projeção (fig. 7.5). O sentidodo vetor é do plano para o observador (fig. 7.6). Neste caso, quando vpoint é igual a (0,-1,0) odesenho é exibido de forma que o eixo y esteja apontando no sentido contrário ao doobservador e vice-versa quando vpoint é igual a (0,1,0).Além disto, o AutoCAD fornece uma maneira alternativa para se definir o ponto-de-vistade um objeto. Considerando-se uma esfera no espaço é possível se definir um vetor que vaido centro da esfera até a sua borda através de dois ângulos de rotação. O primeiro é medidono plano XY e o segundo no plano XZ. Uma representação única para estes dois ângulospode ser dada através de duas circunferências e um trípode (fig. 7.7), onde deslocamentoscirculares em torno do centro do trípode indicam rotações ao redor da origem dos eixos noplano XY e deslocamentos do cursor do centro do trípode para a circunferência maisexterna implica na rotação norte-sul do vetor, ou seja, caracterizam rotações no plano XZ.As figuras 7.8, 7.9 e 7.10 exemplificam diferentes vistas de rotações tridimensionaisrealizadas através do comando vpoint e do tripóide.Observe-se que uma forma mais intuitiva de realizar rotações é o esquema de movimentoshorizontais e verticais do mouse, como o utilizado pelo software de visualizaçãotridimensional de dados meteorológicos VIS-5D. Neste processo, movimentos horizontaisou verticais do mouse indicam rotações horizontais ou verticais do objeto, respectivamente.Como as rotações são sempre realizadas sobre a última posição do objeto, este processo setorna bastante simples e intuitivo.
  40. 40. Figura 7.1 Figura 7.2 Figura 7.3Figura 7.1: Sistema de coordenadas no AutoCAD (UCS).Figura 7.2: Mudança de origem dos eixos.Figura 7.3: Rotação dos eixos. Figura 7.4: Processo de extrusão no AutoCAD.
  41. 41. (0,0,1) z (-1,0,0) (0,1,0) y (0,-1,0) x (1,0,0) (0,0,-1) Figura 7.5: Diferentes especificações de ponto-de-vista (vpoint). z z y x z z x yx X x (0,1,0) (0,-1,0)Figura 7.6: Especificações do ponto-de-vista em relação ao eixo y. pólo norte z y S N αxy + x equador pólo sulFigura 7.7: Esquema interativo de especificação de ponto-de-vista.
  42. 42. (0,0,1) (1,0,0) (0,-1,0) B C AFigura 7.8: Especificações de ponto-de-vista para planta, vista lateral e frontal. (-1,1,1) (1,1,1) (-1,-1,1) (1,-1,1) Figura 7.9: Diferentes especificações de ponto-de-vista. (-1,1,-0.5) (1,1,-0.5) (-1,-1,-0.5) (1,-1,-0.5) Figura 7.10: Diferentes especificações de ponto-de-vista.
  43. 43. Um uso interessante do conceito de projeções para a geração de objetos tridimensionaisestá disponível no 3D Studio Max da AutoDesk. Este sistema permite que o usuário definae ajuste formas que constituirão as projeções paralelas ortográficas planta, vista lateral evista frontal de um objeto 3D.A construção do objeto parte da definição de uma forma base denominada de seçãotransversal (fig. 7.11). Considerando o objeto 3D a perna torneada de uma mesa, a formabase é a circunferência que define o tubo a ser torneado. Através da definição de umcaminho para a replicagem da forma base (fig. 7.12) é gerado um objeto 3D denominadono 3D Studio de LOFT (objeto com elevação).O “torneamento” do objeto LOFT é realizado através de um recurso denominado de FitDeformation. Através desta deformação a forma superior (Fit X) e a lateral (Fit Y) doobjeto desejado são associadas ao objeto LOFT base para se obter a forma 3D composta(fig. 7.13). A edição das formas é bem simples dado que cada uma é um conjunto de pontosinterligados por linhas retas ou curvas e, assim, podem ser modificadas por alteração deposição dos pontos, pela inserção de mais pontos ou pelo aumento/diminuição das formasem relação aos seus eixos. Definida a forma final do objeto, ele pode ser renderizado (fig.7.14). Seção Transversal Fit X - Forma Vista Superior Fit Y - Forma Vista Lateral Figura 7.11 Figura 7.12 Figura 7.11: Vistas do objeto Faca. Figura 7.12: Definição da forma base do objeto Faca.
  44. 44. Fit X - Forma Superior Fit Y - Forma Lateral Figura 7.13: Deformações do objeto LOFT base. Figura 7.14: Objeto final renderizado.8. Transformações e Mapeamento de Coordenadas em Bibliotecas GráficasDiferentes bibliotecas gráficas utilizam esquemas diversos de transformações emapeamento de coordenadas. No caso de uma biblioteca gráfica que utiliza primitivasgráficas bidimensionais, como o GKS (Graphical Kernel System), por exemplo, o modo demapeamento é realizado através da definição de duas transformações.No GKS, especificado os limites da área de trabalho do usuário, cujo espaço é denominadode coordenadas de mundo, um retângulo em seu interior define a área de interesse para avisualização (fig. 7.1). Um segundo retângulo define o espaço das coordenadasnormalizadas, na qual o retângulo é mapeado através da transformação de normalização.Nesta etapa pode se habilitar ou não operações de recorte (clipping) bem como depreservação ou não de relações de aspecto (aspect ratio), ou seja, o objeto original a serexibido pode ser achatado ou esticado ou mantido com suas proporções iniciais inalteradas.A transformação de dispositivo mapeia as coordenadas de um retângulo definido no espaçodas coordenadas normalizadas no das coordenadas de dispositivo. Nesta fase, não sãopermitidas operações de recorte e de alteração da relação de aspecto.
  45. 45. TN Coordenadas Coordenadas Normalizadas de Mundo TD TD Coordenadas de Dispositivo Figura 8.1: Mapeamento de coordenadas no GKS.8.1 Esquema de Transformações na Biblioteca Gráfica OpenGLO processo de transformação na OpenGL é baseado em uma analogia com as etapasusualmente seguidas para se fotografar um objeto. Inicialmente, há o posicionamento dacâmera, ou seja, regulagem do trípode e da direção para a qual a câmera aponta, de forma ase definir uma região de interesse para a foto (fig. 8.2.a). Na OpenGL, isto significa definiro ponto-de-observação, o qual determina o volume de visualização no mundo em questão(fig. 8.2.b), e está relacionado com a transformação de visualização (viewingtransformation).A segunda etapa no processo de fotografar é o posicionamento do objeto (fig. 8.2.c), o quesignifica determinar qual parte dele deverá aparecer mais acentuadamente na fotografia.Para tanto, o que se faz é mover ou rotacionar o objeto. Na OpenGL, esta etapa é tambémrelacionada a definição de posicionamento do modelo (fig. 8.2.d), sendo denominada detransformação de modelagem (modeling transformation), que se caracteriza portransformações de rotação, translação e escalamento.Note-se que estas duas etapas no processo da fotografia se confundem, dado que é possívelse obter a mesma foto rotacionando ou transladando o objeto ou a câmera. Neste sentido, afigura 8.3.a exemplifica como pode-se afastar um objeto do ponto-de-observação, cujaposição não se altera e a figura 8.3.b como afastar o ponto-de-observação do objeto, cujaposição permanece inalterada. Assim, na OpenGL as transformações de visualização emodelagem são tratadas de forma combinada como modelview transformation.
  46. 46. Figura 8.2.a: Posicionamento de Figura 8.2.b: Posicionando o volume decâmera. visualização no mundo.Figura 8.2.c: Posicionando o objeto(modelo). Figura 8.2.d: Posicionando o modelo no mundo.Figura 8.2.e: Ajustando a lente para o Figura 8.2.f: Determinando a forma doenquadramento. volume de visualização.
  47. 47. Figura 8.2.g: Fotografia Figura 8.2.h: Viewport y y x z x z Figura 8.3.a: Translação do objeto. Figura 8.3.b: Translação do ponto-de- observação.A terceira etapa do processo de fotografar é o ajuste das lentes para definir oenquadramento desejado. Neste sentido, ao se usar uma grande angular, pode-se aumentaro ângulo de enquadramento, possibilitando que um espaço maior ao redor do objeto alvo seenquadre na área da foto (fig. 8.2.e). Na OpenGL, esta etapa corresponde a definição dovolume de visualização (fig. 8.2.f), ou seja, o que vai ser realmente exibido na tela, bem

×