Prévia do material em texto
C A P ¶I T U L O 5 R e p r e s e n t a »c ~a o d e F o r m a s 3 -D 5 .1 - C o o r d e n a d a s h o m o g e^ n e a s Um ob j eto pertencente a um espa»co de dimens~ao n (2 IR n ) pode sempre ser representado em um espa»co de dimens~ao n + 1 (2 IR n + 1 ) . A transfere^ncia do ob j eto de um espa»co para outro maior ¶e chamada de h o m o g e^ n e a se for feita pela a d i»c ~a o de uma coordenada extra ( fa t o r d e e s c a la ) da seguinte maneira: ² um ponto 2 IR , de coordenadas ( x ) ter¶a coordenadas homoge^neas ( s x , s ) onde s ¶e um escalar qualquer ( 6= 0) . ² um ponto 2 IR 2 , de coordenadas ( x , y ) ter¶a coordenadas homoge^neas ( s x , s y , s ) onde s ¶e um escalar qualquer (6= 0) . ² um ponto (x , y , z ) 2 IR 3 , ter¶a coordenadas homoge^neas (s x , s y , s z , s ) , onde s ¶e um escalar qualquer ( 6= 0) . ² um ponto ( x , y , z , w ) 2 IR 4 , ter¶a coordenadas ( s x , s y , s z , s w , s ) , onde s ¶e um escalar qualquer (6= 0) , e assim por diante. A transforma»c~ao inversa p r o je t a (isso ¶e diminue o n¶umero de elementos) um ponto em coordenadas homogene^as para as coordenadas usuais, atrav¶es das rela»c~oes: (a , b ) ! (a / b ) (a , b , c ) ! ( a / c , b / c ) (a , b , c , d ) ! (a / d , b / d , c / d ) (a , b , c , d , e ) ! (a / e , b / e , c / e , d / e ) etc. . . Matematicamente a e s c o lh a d e s ¶e aleat¶oria. Existe no entanto algumas conseqÄue^ncias desta escolha. Por exemplo: 1 - Uma escolha a d e q u a d a pode fazer com que pontos n~ao represent¶aveis passem a s e r r e p r e s e n t ¶a v e is . Se uma condi»c~ao, por exemplo, n~ao puder representar reais, s = 100 tornar¶a os seguintes n¶umeros represent¶aveis (fazendo n~ao ser nescess¶ario operar com ponto °utuante) : (0, 25; 0, 1 5; 0,01 ) ! (25; 1 5; 1 ; 1 00) 2- Uma escolha a d e q u a d a pode evitar problemas de o v e r ° o w . Se certa m¶aquina s¶o manipula inteiros entre (-32768=2 ¡ 1 6 a 32768= 21 6 ) , s = 0,1 tornar¶a os seguintes n¶umeros represent¶aveis: (80. 000, 40. 000, 1 0. 000) ! (8000; 4000; 1 000; 0, 1 ) 1 5 .2 - C ¶a lc u lo d e P e r¶³m e t r o s , ¶A r e a s e V o lu m e s C¶alculo de per¶³metros, ¶areas e volumes s~ao facilmente introduzidos em gr¶a¯cos de curvas, superf¶³cies e na representa»c~ao de s¶olidos, que puderem ser aproximados por faces planas e linhas retas. Sej a N o n¶umero do v¶ertice de uma curva, ou de um pol¶³gono fechado de N-1 lados (pol¶³gono em que o ¶ultimo v¶ertice coincide com o primeiro) , o p e r¶³m e t r o P ¶e calculado como: P = P N i= 1 p (x i+ 1 ¡ x i) 2 + ( y i+ 1 ¡ y i) 2 + (z i+ 1 ¡ z i) 2 A ¶a r e a entre a curva (2 IR 2 ) e o eixo horizontal, ou a ¶area da ¯gura fechada ( 2 IR 2 ) pode ser dada pela regra dos trap¶ezios: A = 12 hP N i= 1 (x i+ 1 ¡ x i) (y i+ 1 + y i) + (x 1 ¡ x N ) (y i + y N ) i Mas essa forma ¯ca muito complexa para uso em ob j etos 3D. Usando produto vetorial tem-se uma f¶ormula mais e¯ciente aplic¶avel tanto em 2D: A = 12 hP N i= 1 (x iy i+ 1 ¡ x i+ 1 y i) + x N y 1 ¡ x 1 y N i quanto em 3D (na express~ao abaixo o primeiro ponto e o ¶ultimo s~ao considerados coincidentes) : A = 12 hP N i= 1 (x iy i+ 1 ¡ x i+ 1 y i) + P N i= 1 (y iz i+ 1 ¡ z iy i+ 1 ) + P N i= 1 (z ix i+ 1 ¡ z i+ 1 x i) i O volume da pira^mide de lados ~a ;~b ;~c ¶e: 16 h ~a :(~b £ ~c ) i . Assim o v o lu m e de ¯guras complexa ser¶a a P do volume das piramides que a constituem. | | | | Nota: o p r o d u t o m is t o de 3 vetores: ~A :( ~B £ ~C ) , tem no seu m¶odulo a representa»c~ao do volume do paralelep¶³pedo de lados A, B e C. O volume de um p a r a le le p ¶³p e d o ¶e a sua ¶area multiplicado pela sua altura ou: A £ B :C = AB sen® C cosµ ( onde ® ¶e o a^ngulo entre os lados A e B e µ o a^ngulo que C faz com o plano de¯nido por A e B ) . 2 O volume de uma piramide ¶e: V = 13 A h onde a ¶area da base ¶e: A = 1 2 ¯¯ ~b £ ~c ¯¯ logo: V = 1 3 A h = 1 3 A c o s µ ~a = 1 3 A :~a = 1 6 h ~a :(~b £ ~c ) i 5 .3 - T r a n s fo r m a »c ~o e s G e o m ¶e t r ic a s Transforma»c~oes geom¶etricas s~ao usadas para modi¯car ob j etos j ¶a existentes. ¶E geral- mente desej ¶avel descrever estas transforma»c~oes por matrizes, pois com essa descri»c~ao ¶e poss¶³vel usar as propriedades de matrizes (associatividade, produto matricial e concatena»c~ao) simpli¯cando problemas complexos. S~ao sempre usadas coordenadas homoge^neas, nestes casos, porque a transla»c~ao poder¶a, com o uso destas coordenadas, tamb¶em ser descrita por matrizes. S~ao transforma»c~oes b¶asica: { as transla»c~oes { as rota»c~oes de ob j etos na origem em torno dos eixos ( x y z { as mudan»cas de escala em torno da origem. 5 .3 .1 - T r a n s la »c ~a o p o r u m v e t o r T (tx ; ty ; tz ) Cada ponto P (x ; y ; z ) do ob j eto ser¶a transformado em um outro ponto P 0(x 0; y 0; z 0) de modo que suas coordenadas se relacionem por: P 0 = P + T ! ( x 0 = x + tx y 0 = y + ty z 0 = z + tz matricialmente, usando coordenadas homogeneas tem-se: P 0 = P :M (T ) onde P 0 = ( x 0; y 0; z 0; 1) = ( x ; y ; z ; 1 ) :M (T ) = (x + tx ; y + ty ; z + tz ; 1 ) M (T ) = ¯¯¯¯ ¯¯¯1 0 0 00 1 0 0 0 0 1 0 tx ty tz 1 ¯¯¯¯ ¯¯¯ Aqui estamos usando um vetor linha (1 x4) multiplicado por uma matriz quadrada (4x4) . Se tivessemos usando vetores coluna (4x1 ) teria-se que usar a transposta da matriz acima e a ordem da multipli»c~ao seria invertida. Essa observa»c~ao vale para todas as demais matrizes apresentadas a seguir. 3 5 .3 .2 - R o t a »c ~a o d e u m a^ n g u lo ® e m t o r n o d o e ix o x Cada ponto P (x ; y ; z ) do ob j eto ser¶a transformado em um outro ponto P 0(x 0; y 0; z 0) de modo que suas coordenadas se relacionem por: P 0 = P :M (R (x ;® )) onde P 0 = ( x 0; y 0; z 0; 1) = ( x ; y ; z ; 1 ) :M (R (x ;® )) = (x ; y c o s ® ¡ z s e n ® ; z c o s ® + y s e n ® ; 1 ) M (R (x ;® )) = ¯¯¯¯ ¯¯¯1 0 0 00 c o s ® s e n ® 0 0 ¡ s e n ® c o s ® 0 0 0 0 1 ¯¯¯¯ ¯¯¯ 5 .3 .3 - R o t a »c ~a o d e u m a^ n g u lo ¯ e m t o r n o d o e ix o y Cada ponto P (x ; y ; z ) do ob j eto ser¶a transformado em um outro ponto P 0(x 0; y 0; z 0) de modo que suas coordenadas se relacionem por: P 0 = P :M (R (y ;¯ )) onde P 0 = ( x 0; y 0; z 0; 1) = ( x ; y ; z ; 1 ) :M (R (y ;¯ )) = (x c o s ¯ ¡ z s e n ¯ ; 1 ; z c o s ¯ + x s e n ¯ ; 1 ) M (R (y ;¯ )) = ¯¯¯¯ ¯¯¯c o s ¯ 0 ¡ s e n ¯ 00 1 0 0 s e n ¯ 0 c o s ¯ 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Repare que esta matriz, devido a orienta»c~ao dos eixos, tem a posio do sinal ¡ invertida em rela»c~ao as demais. 5 .3 .4 - R o t a »c ~a o d e u m a^ n g u lo ¸ d e o b je t o s e m t o r n o d o e ix o z Cada ponto P (x ; y ; z ) do ob j eto ser¶a transformado em um outro ponto P 0(x 0; y 0; z 0) de modo que suas coordenadas se relacionem por: P 0 = P :M (R (z ;¸ )) onde P 0 = (x 0; y 0; z 0; 1 ) = (x ; y ; z ; 1 ) :M (R (z ;¸ )) = (x c o s ¸ ¡ y s e n ¸ ; y c o s ¸ + x s e n ¸ ; 1 ; 1 ) M (R (z ;¸ )) = ¯¯¯¯ ¯¯¯ c o s ¸ s e n ¸ 0 0¡ s e n ¸ c o s ¸ 0 0 0 0 1 0 0 0 0 1 ¯¯¯¯ ¯¯¯ 5 .3 .5 - M u d a n »c a d e e s c a la p o r u m v e t o r E (e x ; e y ; e z ) e m t o r n o d a o r ig e m Cada ponto P (x ; y ; z ) do ob j eto ser¶a transformado em um outro ponto P 0(x 0; y 0; z 0) de modo que suas coordenadas se relacionem por: P 0 = P :M (E ) onde P 0 = (x 0; y 0; z 0; 1 ) = ( x ; y ; z ; 1 ) :M (E ) = ( x e x ; y e y ; z e z ; 1 ) 4 M (E ) = ¯¯¯¯ ¯¯¯e x 0 0 00 e y 0 0 0 0 e z 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Se o ob j eto n~ao estiver em torno da origem, ou se um dos pontos do ob j eto n~ao for a origem, tamb¶em ocorre uma transla»c~ao no ob j eto, quando esta transforma»c~ao for aplicada. 5 .4 - C o n c a t e n a »c ~a o d e T r a n s fo r m a »c ~o e s A multiplica»c~ao de matrizes ¶e usada para concatenar transforma»c~oes.Esta ¶e a maneira usual de obter qualquer transforma»c~ao a partir dos tipos b¶asicos acima descritos. E x e m p lo : um ob j eto P deve ser transladado de (tx ; ty ; 0) e fazer um a^ngulo ¸ com o eixo z, as opera»c~oes a serem aplicadas s~ao: 1o. transla»c~ao: P 0 = P :M (T ) (1 ) 2o. o resultado ¶e rodado de ¸ : P 00 = P 0. M (R (z ;¸ )) (2) Substituindo (1 ) em (2) : P 00 = P :M (T ) :M (R (z ;¸ )) . Como o produto matricial ¶e associativo pode-se primeiro resolver a multiplica»c~ao das matrizes M (T ) :M (R (z ;¸ )) ) e depois multiplicar o resultado pelos pontos do ob j eto. Assim a matriz abaixo faria os mesmo efeito das anteriores aplicadas em seque^ncia. ¯¯¯¯ ¯¯¯1 0 0 00 1 0 0 0 0 1 0 tx ty 0 1 ¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯ c o s ¸ s e n ¸ 0 0¡ s e n ¸ c o s ¸ 0 0 0 0 1 0 0 0 0 1 ¯¯¯¯ ¯¯¯ = ¯¯¯¯ ¯¯¯ c o s ¸ s e n ¸ 0 0¡ s e n ¸ c o s ¸ 0 0 0 0 1 0 tx c o s ¸ ¡ ty s e n ¸ tx s e n ¸ + ty c o s ¸ 0 1 ¯¯¯¯ ¯¯¯ Usando este mecanismo ¶e poss¶³vel obter transforma»c~oes complexas a partir das transforma»c~oes b¶asicas. ¶E importante lembrar que a multiplica»c~ao de matrizes n ~a o ¶e c o m u t a t iv a . Se execu- tassemos o segundo passo acima antes do primeiro: (rota»c~ao de ¸ seguida de transla»c~ao) ter¶³amos como resultado a matriz: P 00 = P M (R (z ;¸ )) M (T ) = P ¯¯¯¯ ¯¯¯ c o s ¸ s e n ¸ 0 0¡ s e n ¸ c o s ¸ 0 0 0 0 1 0 tx ty 0 1 ¯¯¯¯ ¯¯¯ Essa quanto aplicada aos pontos do ob j eto levaria a um efeito diferente. 5 5 .5 - C o m o d e t e r m in a r a m a t r iz M q u e le v a o s p o n t o s d e u m o b je t o p a r a o u t r o s p o n t o s c o n h e c id o s . Suponha que voce^ conhece as coordenadas de 4 pontos de um ob j eto 3D, antes e depois, de sofrerem uma determinada transforma»c~ao. Como voce^ pode determinar a transforma»c~ao M = ¯¯¯¯ ¯¯¯a b c de f g h i j k l m n o p ¯¯¯¯ ¯¯¯ que produz a modi¯ca»c~ao desej ada? Essa pergunta ¶e conhecida como a determina»c~ao do p r o b le m a in v e r s o , e a resposta: M deve ser tal que: (x 1 ; y 1 ; z 1 ; 1 ) = (x 0 1 ; y 0 1 ; z 0 1 ; 1 ) jM j (x 2 ; y 2 ; z 2 ; 1 ) = (x 0 2 ; y 0 2 ; z 0 2 ; 1 ) jM j (x 3 ; y 3 ; z 3 ; 1 ) = (x 0 3 ; y 0 3 ; z 0 3 ; 1 ) jM j (x 4 ; y 4 ; z 4 ; 1 ) = (x 0 4 ; y 0 4 ; z 0 4 ; 1 ) jM j onde (x i; y i; z i; 1 ) ; i = 1 ; 2 ; 3; 4 s~ao as coordenadas dos pontos conhecidos. M pode ser deter- minada resolvendo o sistema de 1 6 equa»c~oes a 1 6 inc¶ognitas:8><>: x 1 = a x 0 1 + e y 0 1 + iz 0 1 + m y 1 = b x 0 1 + f y 0 1 + j z 0 1 + n z 1 = c x 0 1 + g y 0 1 + k z 0 1 + o 1 = d x 01 + h y 0 1 + lz 0 1 + p8><>: x 2 = a x 0 2 + e y 0 2 + iz 0 2 + m y 2 = b x 0 2 + f y 0 2 + j z 0 2 + n z 1 = c x 0 2 + g y 0 2 + k z 0 2 + o 1 = d x 02 + h y 02 + lz 02 + p8><>: x 3 = a x 0 3 + e y 0 2 + iz 0 2 + m y 3 = b x 0 3 + f y 0 3 + j z 0 3 + n z 3 = c x 0 3 + g y 0 3 + k z 0 3 + o 1 = d x 03 + h y 0 3 + lz 0 3 + p8><>: x 4 = a x 0 4 + e y 0 4 + iz 0 4 + m y 4 = b x 0 4 + f y 0 4 + j z 0 4 + n z 4 = c x 0 4 + g y 0 4 + k z 0 4 + o 1 = d x 04 + h y 04 + lz 04 + p 6 5 .6 - P r o je »c ~o e s e P e r s p e c t iv a s Em computa»c~ao gr¶a¯ca um problema frequente ¶e como representar o ob j eto 3D nos dispositivos de sa¶³da 2D. A solu»c~ao ¶e pro j etar o ob j eto 3D no plano 2D. Ou sej a o uso de Pro j e»c~oes e Perspectivas. Pro j e»c~oes s~ao muito usada em desenho t¶ecnico. Perspectivas s~ao muito usada na repre- senta»c~ao de cenas real¶³sticas. A pro j e»c~ao ¶e, matematicamente, uma fun»c~ao ou transforma»c~ao id e m p o t e n t e (isso ¶e, uma fun»c~ao que repetida produz resultado ide^ntico) : F : IRn ! IRn P ! P 0 = F (P ) ; P 0 ! P 00 = F (P 0) = P 0 ou F (F (P ) ) = F (P ) E x e m p lo : a pro j e»c~ao de um vetor em uma dire»c~ao ¶e obtida pelo p r o d u t o in t e r n o ou p r o d u t o e s c a la r do vetor com o vetor unit¶ario da dire»c~ao. Essas opera»c~oes de pro j e»c~ao s~ao executadas por matrizes de¯nidas de acordo com o tipo de apare^ncia que desej a-se para o ob j eto. Algumas pro j e»c~oes recebem denomina»c~ao especial, essas s~ao descritas a seguir. S u m ¶a r io d o s t ip o s d e p r o je »c ~a o p a r a c o m p u t a »c ~a o g r ¶a ¯ c a p r o je »c ~a o . & p a r a le la p e r s p e c t iv a ! 3 pontos de fuga . # # & cavaleira à o b liq u a a x o m ¶e t r ic a ! ortogr¶a¯ca 1 2 . . # & cabinet isom¶etrica dim¶etrica trim¶etrica 7 A p r o je »c ~a o e m p e r s p e c t iv a ¶e obtida pela interse»c~ao de retas (chamadas r a io s p r o - je t o r e s ) passando pelos v¶ertices do ob j eto a ser pro j etado e pelo c e n t r o d e p r o je »c ~a o , com o p la n o d e p r o je »c ~a o ou plano de vista. Elas s~ao caracterizadas pelo n¶umero de centro de pro j e»c~oes ou p o n t o s d e fu g a usados. As p r o je »c ~o e s p a r a le la s s~ao obtidas de forma ide^ntica, mas com o plano de pro j e»c~ao no in¯nito (logo todos os raios pro j etores ser~ao retas paralelas) . Se os raios pro j etores s~ao ? ao p la n o d e v is t a , a pro j e»c~ao p a r a le la ¶e chamada a x o m ¶e t r ic a , caso contr¶ario ¶e chamada o b liq u a As pro j e»c~oes a x o m ¶e t r ic a s mais importantes s~ao: a isom¶etrica, a dim¶etrica e a ortogr¶agica. Na pro j e»c~ao is o m ¶e t r ic a o plano de vista faz o m e s m o a^ n g u lo com os 3 principais eixos do ob j eto, assim os 3 eixos do ob j eto sofrem a mesma varia»c~ao de comprimento. Na pro j e»c~ao d im ¶e t r ic a o plano de vista tem mesmo a^ngulo com dois dos eixos principais do ob j eto (assim 2 eixos sofrem mesma varia»c~ao de medida) . Na pro j e»c~ao t r im ¶e t r ic a o plano de vista tem a^ngulos diferentes com cada eixo principal do ob j eto (ocorrendo 3 varia»c~oes diferentes de medidas) . Na pro j e»c~ao o r t o g r ¶a ¯ c a o plano de vista tem normal paralela a um dos eixos do ob j eto. Na pro j e»c~ao o b liq u a as linhas de pro j e»c~ao te^m a^ngulos 6= 90o como o plano de vista. Estas pro j e»c~oes se caracterizam pela r e d u »c ~a o que ocasionam nas medidas de um dos eixos do ob j eto, que ¶e uma consegue^ncia do a^ngulo que as linhas de pro j e»c~ao formam com o plano de vista. Suas principais classi¯ca»c~oes s~ao: c a v a le ir a ! quando as linhas de pro j e»c~ao fazem 45 o com o plano de pro j e»c~ao, logo n~ao ocorre redu»c~ao de medidas. c a b in e t ! ¶e um caso particular de obliqua, onde o 3o eixo tem suas medidas reduzidas pela metade. Neste caso demostra-se facilmente que as linhas de pro j e»c~ao fazem aproximada- mente 63o com o plano de pro j e»c~ao. 5 .6 .1 - D e t e r m in a »c ~a o d a s M a t r iz e s d e P r o je »c ~a o As matrizes de pro j e»c~ao devem ser tais que, cada ponto P do ob j eto sej a levado no ponto P 0 da sua imagem, de modo que nesta sej am veri¯cados os efeitos que caracterizam determinada pro j e»c~ao: P 0 = P :M (x' , y' , z' , 1 ) = (x, y, z, 1 ) j M j Veremos a seguir as formas de determinar cada uma dessas pro j e»c~oes. P r o je »c ~o e s a x o m ¶e t r ic a s : Nestas pro j e»c~oes o plano de pro j e»c~ao deve ser paralelo aos planos do ob j eto e os raios pro j etores perpendiculares a este plano. Podem ser dos tipos: 8 1) P r o je »c ~a o o r t o g r ¶a ¯ c a n o p la n o x = 0, todas as coordenadas x do ob j eto pertencem a este plano (ou sej a ser~ao zero) : M (ort: planox = 0 ) = ¯¯¯¯ ¯¯¯0 0 0 00 1 0 0 0 0 1 0 0 0 0 1 ¯¯¯¯ ¯¯¯ 2) P r o je »c ~a o o r t o g r ¶a ¯ c a n o p la n o y = 0, todas as coordenadas y do ob j eto pertencem a este plano (ou sej a ser~ao zero) : M (ort: planoy = 0 ) = ¯¯¯¯ ¯¯¯1 0 0 00 0 0 0 0 0 1 0 0 0 0 1 ¯¯¯¯ ¯¯¯ 3) P r o je »c ~a o o r t o g r ¶a ¯ c a n o pla n o z = 0 , todas as coordenadas z do ob j eto pertencem a este plano (ou sej a ser~ao zero) : M (ort: planoz = 0 ) = ¯¯¯¯ ¯¯¯1 0 0 00 1 0 0 0 0 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ 4) P r o je »c ~a o p r o je »c ~a o o r t o g r ¶a ¯ c a e m u m p la n o x = P , ¶e obtida pela combina»c~ao da pro j e»c~ao no plano x = 0, com uma transla»c~ao (concatena»c~ao) . Assim concatenando a pro j e»c~ao em x = 0, com a transla»c~ao para x = P , tem-se:¯¯¯¯ ¯¯¯ 0 1 1 1 ¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯ 1 1 1 P 1 ¯¯¯¯ ¯¯¯ = ¯¯¯¯ ¯¯¯ 0 1 1 P 1 ¯¯¯¯ ¯¯¯ As posi»c~oes sem valores devem ser consideradas como iguais a zero! 5) As pro j e»c~oes is o m ¶e t r ic a , d im ¶e t r ic a e t r im ¶e t r ic a s (com mudan»cas especi¯cas de medidas) s~ao obtidas por combina»c~ao de rota»c~ao seguidas de pro j e»c~ao. Antes da pro j e»c~ao, em z = 0 (por exemplo) , aplica-se a rota»c~ao de ¯ em torno de y seguida de uma rota»c~ao de ® em torno de x , resultando:¯¯¯¯ ¯¯¯c o s ¯ 0 ¡ s e n ¯ 00 1 0 0 s e n ¯ 0 c o s ¯ 0 0 0 0 1 ¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯1 0 0 00 c o s ® s e n ® 0 0 ¡ s e n ® c o s ® 0 0 0 0 1 ¯¯¯¯ ¯¯¯ = M (¯ e m y ® e m x ) 9 ¯¯¯¯ ¯¯¯c o s ¯ s e n ¯ s e n ® ¡ s e n ¯ c o s ® 00 c o s ® s e n ® 0 s e n ® ¡ s e n ® c o s ¯ c o s ® c o s ¯ 0 0 0 0 1 ¯¯¯¯ ¯¯¯= M (¯ e m y ® e m x ) Pro j etando em z = 0, tem-se : M 0(¯ e m y ® e m x ) = M (¯ e m y ® e m x ) : ¯¯¯¯ ¯¯¯ 1 1 0 1 ¯¯¯¯ ¯¯¯ M 0(¯ e m y ® e m x ) = ¯¯¯¯ ¯¯¯c o s ¯ s e n ¯ s e n ® 0 00 c o s ® 0 0 s e n ® ¡ s e n ® c o s ¯ 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Para levar em conta a mundan»ca mas medidas do ob j eto, considera-se agora a trans- forma»c~ao de vetores unit¶arios em x e y. O vetor unit¶ario em x , U x , depois de transformado ser¶a, U 0x : U 0x = j1 ; 0; 0; 1 j : M 0( ¯ e m y ® e m x ) = jc o s ¯ ; s e n ¯ s e n ® ; 0; 1 ; j e o vetor unit¶ario em y , U y , depois de transformado ser¶a , U 0 y : U 0y = j 0; 1 ; 0; 1 ; j : M 0(¯ e m y ® e m x ) = j0; c o s ® ; 0; 1 ; j Por de¯ni»c~ao a pro j e»c~ao dim¶etrica e a isom¶etrica devem ter mesma redu»c~ao em U x e U y assim, os vetores depois de transformados devem ter o mesmo comprimento ou norma ( ja ; b ; c j = p a 2 + b 2 + c 2 ) . Calculando esses valores temos: jU 0x j = jU 0y j ! c o s 2 ¯ + s e n 2 ¯ s e n 2 ® = c o s 2 ® re-escrevendo a igualdade s¶o em fun»c~ao de \senos" : (1 ¡ s e n 2 ¯ ) + s e n 2 ¯ s e n 2 ® = (1 ¡ s e n 2 ® ) organizando a express~ao pode-se simpli¯car como: s e n 2 ¯ (s e n 2 ® ¡ 1 ) = ¡ s e n 2 ® _:: s e n 2 ¯ = + s e n 2 ® 1 ¡ s e n 2 ® (A ) s e n 2 ¯ = + s e n 2 ® c o s 2 ® = ta n 2 ® ) s e n ¯ = ta n ® 1 0 Observa-se que tem-se in¯nitos pares de a^ngulos que satisfazem essa rela»c~ao. Assim, para uma pro j e»c~ao d im ¶e t r ic a , escolhe-se um a^ngulo em torno de x ( ® ) e determina-se ¯ . Por exemplo se: ® = 30o ent~ao ¯ deve ser: ¯ = 35,26o de modo que M (35 ; 26oe m y ; 30 o e m x ) ser¶a: M (35 ; 26oe m y ; 30 o e m x ) = ¯¯¯¯ ¯¯¯¯ p 6= 3 p 3= 6 0 0 0 p 3= 2 0 0p 3= 3 ¡ p 6= 6 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯¯ = ¯¯¯¯ ¯¯¯0:82 0:29 0 00 0:87 0 0 0:58 ¡ 0:41 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Por exemplo suponha que voce^ queira desenhar um cubo em perspectiva dim¶etrica com coordenadas: A = j0; 0; 1 ; 1 j B = j1 ; 0; 1 ; 1 j C = j1 ; 0; 0; 1 j D = j0; 1 ; 1 ; 1 j E = j1 ; 1 ; 1 ; 1 j F = j1 ; 1 ; 0; 1 j G = j0; 1 ; 0; 1 j O cubo depois de pro j etado ter¶a coordenadas P 0 = P :M , dadas pela multiplica»c~ao de cada ponto pela matriz acima. Fazendo isso tem-se: A 0 = j0:58; ¡ 0:41 ; 0; 1 j B 0 = j1 :40; ¡ 0:1 2; 0; 1 j C 0 = j0:82 ; 0:29; 0; 1 j D 0 = j0:58; 0:46; 0; 1 j E 0 = j1 :40; 0:75 ; 0; 1 j F 0 = j0:82 ; 1 :1 6; 0; 1 j G 0 = j 0; 0:87; 0; 1 j Se voce plotar esses pontos em um sistema de eixos x-y e uni-los por linhas retas, obter¶a o desenho do cubo como visto por essas pro j e»c~oes. Para uma pro j e»c~ao is o m ¶e t r ic a , por de¯ni»c~ao todos os vetores unit¶arios dever~ao sofrer a mesma varia»c~ao de comprimento ou sej a jU 0x j = jU 0y j = jU 0z j Assim tem-se uma outra equa»c~ao al¶em da anterior: c o s 2 ¯ + s e n 2 ¯ s e n 2 ® = c o s 2 ® (1 ) a ser satisfeita , est¶a ser¶a obtida considerando a transforma»c~ao por M ( ¯ e m y ® e m x ) de um vetor unit¶ario em z : U 0z = j0; 0; 1 ; 1 j ¯¯¯¯ ¯¯¯c o s ¯ s e n ¯ s e n ® ¡ s e n ¯ c o s ® 00 c o s ® s e n ® 0 s e n ¯ ¡ s e n ® c o s ¯ c o s ¯ c o s ® 0 0 0 0 1 ¯¯¯¯ ¯¯¯ U 0z = js e n ¯ ¡ s e n ® ; cos ¯ ; 0; 1 j este vetor ter¶a comprimento: jU 0z j = s e n 2 ¯ + s e n 2 ® c o s 2 ¯ 1 1 e por de¯ni»c~ao deve ser o mesmo comprimento dos demais vetores unit¶arios: jU 0z j = jU 0y j ! s e n 2 ¯ + s e n 2 ® c o s 2 ¯ = c o s 2 ® (2) desenvolvendo (2) como anteriormente, tem-se: s e n 2 ¯ = 1 ¡ 2 s e n 2 ® 1 ¡ s e n 2 ® (B ) igualando as equa»c~oes (A) e (B) obt¶em-se: c o s ® = p 6= 3 ¼ 35; 26o substituindo em (A) : s e n 2 ¯ = 1 = 3 1 ¡ 1 = 3 = 1 2 ! ¯ = 45 o logo para pro j e»c~oes isom¶etricas, a matriz ser¶a: M (isometrica) = ¯¯¯¯ ¯¯¯ p 2 = 2 p 6= 6 0 0 0 p 6= 3 0 0p 2 = 2 ¡ p 6= 6 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯= ¯¯¯¯ ¯¯¯0:707 0:408 0 00 0:81 7 0 0 0:707 ¡ 0:408 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Por exemplo, o cubo anterior seria descrito pelas coordenadas: A 0 = j0:707; ¡ 0:408; 0; 1 j B 0 = j1 :41 4; 0; 0; 1 j C 0 = j0:707; 0:408; 0; 1 j D 0 = j0:707; 0:408; 0; 1 j E 0 = j1 :414; 0:81 7; 0; 1 j F 0 = j0:707; 1 :225 ; 0; 1 j G 0 = j0; 0:81 7; 0; 1 j Desenhe o cubo depois de transformado por pro j e»c~ao isom¶etrica. P r o je »c ~o e s o b liq u a s : Nestas pro j e»c~oes os raios pro j etores n~ao est~ao em a^ngulo reto com o plano de pro j e»c~ao. Se for considerada a pro j e»c~ao no plano z = 0, um vetor unit¶ario na dire»c~ao z , j0; 0; 1 ; 1 j, n~ao ser¶a mais pro j etado em j0; 0; 0; 1 j e sim em um ponto jP x ; P y ; 0; 1 j dependendo da dire»c~ao dos raios pro j etores. Assim a matriz de transforma»c~ao ser¶a:¯¯¯¯ ¯¯¯1 0 0 00 1 0 0 P x P y 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ O usu¶ario deve ent~ao especi¯car algo al¶em da inclina»c~ao dos raios pro j etores com o plano de pro j e»c~ao. Esse dado a mais pode ser, por exemplo, para que ponto desej a-se pro j etar o vetor unit¶ario, isso ¶e: ( P x ; P y ) , ou especi¯camente l e ® , onde l ¶e o comprimento do terceiro eixo e ® ¶e o a^ngulo que este eixo faz com a horizontal. As duas formas s~ao equivalentes. 1 2 Supondo que o ponto (0, 0, 1 ) sej a pro j etado em (P x ; P y ; 0) isso ¶e o mesmo que pro j etar esse ponto em (l c o s ® ; l s e n ® ; 0) . As principais pro j e»c~oes obliquas s~ao: cavalier e cabinet. Na pro j e»c~ao c a v a lie r , o a^ngulo entre as linhas de pro j e»c~ao e o plano de pro j e»c~ao , (½ ) , deve ser 45 o , logo l = 1. Assim, ½ = 45 o ! l = 1 (n~ao h¶a encurtamento) . O a^ngulo ® neste caso pode ser qualquer. Mas em desenho t¶ecnico ® ¶e geralmente § 30o ou § 45 o . Com esses dados ¶e contruida a matriz. Por exemplo para ® = 45 tem-se ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0p 2= 2 p 2 = 2 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ Na pro j e»c~ao c a b in e t o encurtamento do eixo deve ser de 50% : l = 1 = 2 : Assim: ta n ½ = 1q P 2x + P 2 y = 1 1 = 2 = 2 ½ = a r c ta n 2 6» 63; 4o o a^ngulo ® novamente pode ser qualquer, assim se ® = 45 o : ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0p 2= 4 p 2 = 4 0 0 0 0 0 1 ¯¯¯¯ ¯¯¯ O cubo do exemplo anterior, transformado por esta pro j e»c~ao, teria coordenadas: A' = [ 0. 7 , 0. 7, 0, 1 ] B' = [ 1 . 7 , 0. 7, 0 , 1 ] C' = [ 1 , 0 , 0 , 1 ] D' = [ 0. 7 , 1 . 7, 0 , 1 ] E' = [ 1 . 7 , 1 . 7, 0 , 1 ] F' = [ 1 , 1 , 0 , 1 ] G' = [ 0 , 1 , 0 , 1 ] Desenhe o cubo como visto por essa pro j e»c~ao. 1 3 P e r s p e c t iv a s : As p e r s p e c t iv a s se caracterizam pelo n¶umero de centros de pro j e»c~ao e suas posi»c~oes.Supondo uma pro j e»c~ao no plano z = 0 com centro de pro j e»c~ao (0; 0; V z ; 1 ) , a pro j e»c~ao perspectiva do ponto P [x ; y ; z ; 1 ] ser¶a o ponto P 0[x 0; y 0; 0; 1 ] dado pela interse»c~ao das retas que passam pelo centro de pro j e»c~ao , (0; 0; V z ; 1 ) , com o plano z = 0. A pergunta ¶e: que matriz M ( p e r s p :) ¶e tal que pro j eta P em P 0, ou sej a que M faz: P 0 = P :M ( p e r s p :) ? Pela se»c~ao 5. 5, chega-se a: ¯¯¯ x ; y ; 0; ¡ z V z + 1 ¯¯¯ = ¯¯¯ x ; y ; z ; 1 ¯¯¯¯¯¯¯¯¯¯1 0 0 00 1 0 0 0 0 0 ¡ 1V z 0 0 0 1 ¯¯¯¯ ¯¯¯ Assim, um ponto situado em sobre o eixo z por exemplo: [0; 0; 1 ; 1 ] (ou qualquer outro [0; 0; z ; 1] , desde que z 6= V z ) ser¶a levado a (se a matriz perspectiva for aplicada sem a pro j e»c~ao no plano z = 0) ¯¯¯ 0; 0; 0; 1 ¡ 1 V z ¯¯¯ Repare que esse ponto ¶e a origem do sistema de eixos. J¶a os pontos no mesmo plano do eixo de pro j e»c~ao , [x ; y ; V z ; 1 ] , ser~ao levados a j1 ; 1 ; 0; 1 ; j = in ¯ n it o ! Note ainda que um ponto pro j etado no in¯nito sobre o eixo z , [0; 0; 1 ; 0] , ser¶a transfor- mado no ponto: [0; 0; ¡ V z ; 1 ] . Como retas paralelas ao eixo z se encontam no \in¯nito" na dire»c~ao z , e as retas paralelas ao eixo z , se encontam depois de pro j etadas, no ponto [0; 0; ¡ V z ; 1 ] . Este ponto ¶e chamado p o n t o d e fu g a . Isto signi¯ca que todo o dom¶³nio positivo do eixo z (0 · z · 1 ) ¶e pro j etado no dom¶³nio ¯nito (0 · z ¤ · ¡ V z ) . Da mesma meneira pode-se ter perspectivas com p o n t o s d e fu g a s o b r e o e ix o x o u y , (e depois pro j etadas para qualquer plano) . Esses ser~ao dados respectivamente por:¯¯¯¯ ¯¯¯1 ¡ 1 = V x1 1 1 1 1 ¯¯¯¯ ¯¯¯ ou ¯¯¯¯ ¯¯¯1 11 ¡ 1 = V y 1 1 1 ¯¯¯¯ ¯¯¯ Nessas matrizes lugarem em branco correspondem a valores iguais a zero. Se quizermos que o centro de pro j e»c~ao (correspondente ao eixo z) estej a numa posi»c~ao qualquer: [V x ; V y ; V z ; 1 ] ent~ao: 1o. translada-se o ponto para a origem; 2o. usa-se M p e r s p ; ; 3o. translada-se de volta a (V x ; V y ; V z ; 1 ) . A matriz de pro j e»c~ao ser¶a a resultante do produto: 1 4 P 0 = P ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0 0 0 1 0 ¡ V x ¡ V y 0 1 ¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯1 0 0 00 1 0 0 0 0 0 ¡ 1 = V z 0 0 0 1 ¯¯¯¯ ¯¯¯ ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0 0 0 1 0 V x V y 0 1 ¯¯¯¯ ¯¯¯ ou sej a a matriz para uma pro j e»c~ao no plano z = 0 , e um ponto de fuga, de coordenada [V x ; V y ; V z ] ser¶a: ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0¡ V xV z ¡ V yV z 0 ¡ 1V z 0 0 0 1 ¯¯¯¯ ¯¯¯ O cubo do exemplo inicial, se visto do ponto[0; 0; V z ] (centro de pro j e»c~ao em : [0; 0; V z ; 1 ] ) ser¶a levado a: A 0 = [0; 0; 0; 1 ¡ 1V z ] B 0 = [1 ; 0; 0; 1 ¡ 1V z ] C 0 = [1 ; 0; 0; 1 ] D 0 = [0; 1 ; 0; 1 ¡ 1V z ] E 0 = [1 ; 1 ; 0; 1 ¡ 1V z ] F 0 = [1 ; 1 ; 0; 1 ] G 0 = [0; 1 ; 0; 1 ] Assim linhas que eram originalmente paralelas a z parecer~ao agora passar pelo ponto: [0 , 0 , -Vz , 1 ] . Este ponto ¶e chamado de ponto de fuga ou \ v a n is h in g p o in t " . Exempli¯cando, se V z = [1 = 2 1 = 2 2] M p e r s p : ¯¯¯¯ ¯¯¯ 1 0 0 00 1 0 0¡ 1 = 4 ¡ 1 = 4 0 ¡ 1 = 2 0 0 0 1 ¯¯¯¯ ¯¯¯ e o cubo inicial ter¶a coordenadas: A' = [ -1 /4 ; -1/4 ; 0 ; 1 /2 ] B' = [ 3/4 ; -1/4 ; 0 ; 1 /2 ] C' = [ 1 ; 0 ; 0 ; 1 ] D' = [ -1 /4 ; 3/4 ; 0 ; 1 /2 ] E' = [ 3/4 ; 3/4 ; 0 ; 1 /2 ] F' = [ 1 ; 1 ; 0 ; 1 ] G' = [ 0 ; 1 ; 0 ; 1 ] Desenhe o cubo! 1 5 De maneira semelhante tem-se perspectivas com um ponto de fuga sobre e ix o x ou sobre o y e coordenadas [V x ; V y ; V z ] . Para perspectivas com d o is p o n t o s d e fu g a , por exemplo para pontos de fuga em [¡ V x ; 0; 0] [0; ¡ V y ; 0] , tem-se: ¯¯¯¯ ¯¯¯¯1 0 0 ¡ 1 V x 0 1 0 ¡ 1V y 0 0 1 0 0 0 0 1 ¯¯¯¯ ¯¯¯¯ Para perspectivas com 3 p o n t o s d e fu g a , por exemplo para pontos de fuga em [¡ V x ; 0; 0] , [0; ¡ V y ; 0] e [0; 0; ¡ V z ; 0] tem-se:¯¯¯¯ ¯¯¯1 ¡ 1 = V x1 ¡ 1 = V y 1 ¡ 1 = V z 1 ¯¯¯¯ ¯¯¯ Obs. : 1- Nas matrizes acima n~ao ocorreu ainda a pro j e»c~ao em qualquer plano. 2- A transforma»c~ao perspectiva n~ao leva IE ! IE pois as retas paralelas n~ao s~ao pro j etadas em retas paralelas. (IE = espa»co Euclidiano) . 5 .7 - C a r a c t e r is t ic a s d a s M a t r iz e s d e T r a n s fo r m a »c ~o e s e m C o o r d e n a d a s H o m o g e^ n e a s Todas as transforma»c~oes e pro j e»c~oes podem ser representas por uma ¶unica matriz obtida da concatena»c~ao de todos os efeitos a que o ob j eto estiver submetido. A matriz ¯nal pode ser dividido em 4 submatrizes.2666664 P E R P e r s p 3 £ 3 3 £ 1 T 1 £ 3 E G 1 £ 1 3777775 As letras querem dizer que efeito cada parti»c~ao representa. PER { ¶e respons¶avel pelas pro j e»c~oes paralelas, mudan»cas de escala e rota»c~oes, T { ¶e respons¶avel pelas transla»c~oes, Persp { ¶e respons¶avel pelas perspectivas, EG { ¶e respons¶avel pela transforma»c~ao global de escala. 1 6 5 .8 - C o o r d e n a d a s e s f¶e r ic a s e c ilin d r ic a s Os pontos em 3-D podem ser representados por outros tipos de coordenadas al¶em das c o o r d e n a d a s r e t a n g u la r e s , como por exemplo as c o o r d e n a d a s e s f¶e r ic a s e a s c ilin d r ia s . Nas coordenadas cil¶indricas ao inv¶es de 3 posi»c~oes usa-se a dista^ncia do ponto ao centro, ou r a io , um a^ngulo e uma altura h . O raio e o a^ngulo com o eixo x formam um sistema 2D de coordenadas polares . Se a altura for na dire»c~ao do eixo z , um ponto ser¶a descrito como: (R, µ , h) . Assim os sistemas de coordenadas cartesianos e cilindricos se relacionam por:( x = R c o s µ y = R s e n µ z = h ou 8<: R = p x 2 + y 2 µ = ta n ¡ 1 (y = x ) h = z Nas coordenadas esf¶ericas ao inv¶es de 3 posi»c~oes usa-se a dista^ncia do ponto ao centro, ou r a io , e dois a^ngulos: o a^ngulo com o eixo x e o a^ngulo com o eixo z . Um ponto ser¶a descrito como: (R, µ ; Á ) . Esse sistema de coordenadas se relaciona com o cartesiano por:( x = R s e n Á c o s µ y = R s e n Á s e n µ z = R c o s Á ou 8<: R = p x 2 + y 2 + z 2 µ = ta n ¡ 1 ( y = x ) Á = c o s ¡ 1 (z = R ) Por exemplo, o mesmo ponto do espa»co pode ser descrito como: (4, 2, 3) ou (5. 43, 27o , 56o ) . B ib lio g r a ¯ a : (1 ) Yvon Gardan, Mathematics and CAD, Vol. 1 : Numerical Methods for CAD. MIT Press, Cambridge, Massachusetts, 1 986. (2) Steven Harrignton, Computer Graphics: a programming approach, 2nd edition, McGraw- Hill, 1 988 (3) J. D. Foley,A. van Dam,S. K. Feiner, J. F. Hughes. Computer Graphics- Principles and Prac- tice, Addison-Wesley, 1 990. (4) Vera B. Anand, Computer Graphics and Geometric Modeling, John-Wiley, 1993. (5) Alan H. Watt, Fabio Policarpo, The Computer Image , Addison-Wesley Pub Co (Net) , 1 998. 1 7