ITULO
3
Modelos Geom´etricos
3.1 Introduc~ao
Modelos geometricos s~ao representac~oes das caractersticas geometricas de um objeto quedesejamosconstruir. Vimos,noCaptulo2,quehaumavariedadederepresentac~oes possveis, e que a denic~ao de uma representac~ao depende de quais operac~oes ser~ao realizadas sobreo modelo. Porexemplo, emum modelode contorno, senecessitarmos perguntar muitas vezes quais s~ao as faces que incidem em um determinado vertice, seramaiseciente,emtermosdevelocidadedeprocessamento,armazenardiretamente essas informac~oes de adjac^encia na estrutura de dados do modelo. Evidentemente, o armazenamento dessas informac~oes diretamente na estrutura de dados do modelo resultara em uma representac~ao que consome mais memoria do computador. Esse con ito espaco versus tempo e uma constante nos projetos de modelos baseados em computador. Maisumavez,oquedecidiraafavordeumarepresentac~ao,emdetrimento de outra, s~aoos propositos domodelo.
Neste Captulo discutiremosas tecnicasde modelagemutilizadasnarepresentac~ao geometrica de nossos objetos estruturais. O proposito e descrever as estruturas de dados e as principais operac~oes de construc~ao e destruic~ao dos componentes dos mo-delos geometricos empregados em OSW. Descreveremos, tambem, as principais ope-rac~oes de transformac~aode um modelogeometrico,iniciandonaSec~ao3.2com a apre-sentac~ao da formulac~ao homog^enea de algumas transformac~oes geometricas bastante
uteis: translac~oes, transformac~oes de escala, rotac~oes e quaisquer composic~oes dessas transformac~oes. Algoritmosde visualizac~aoede analise eoperac~oes taiscomoo arma-zenamentoerecuperac~aodosdadosdos modelosem arquivosser~aovistosnos captulos subsequentes.
Comecaremos nossas discuss~oes sobre modelos geometricos com modelos gracos bem simples, Sec~ao 3.3. Um modelo graco pode ser utilizado para representar de-senhos de objetos que podem ser descritos por guras geometricas tais como pontos, linhase polgonos. Chamaremosessas guras geometricasde primitivos, edeniremos um modelo graco como uma colec~ao de primitivos que podem ser hierarquicamente agrupados, como descrito no Captulo 2. Modelos gracos ser~ao uteis, por exemplo, narepresentac~aogeometricade isolinhaseisosuperfcies, comoveremosnoCaptulo7.
vante. Asinformac~oesarmazenadasnomodelon~aos~aosucientespara operac~oesmais complexas sobre o objeto. Se um conjunto de linhas do modelo representar as arestas de um solido, porexemplo, n~ao podemos determinar diretamente qual o volume ou a
area supercial do solido, ou quais s~ao as faces que incidem em determinada aresta, poisn~aotemos disponveis quaisquer dados de adjac^encia nomodelo.
NaSec~ao3.4,proporemosummodelogeometricoqueconteminformac~oesexplcitas sobre determinadas relac~oes de adjac^encia entre seus componentes. Utilizaremosesses modelosnarepresentac~aode estruturas constitudasde cascasanalisadas pelo metodo dos elementos nitos, conforme exemplicaremos no Captulo 11. (Lembremos, do Captulo1,quenospropusemosademonstrarautilizac~aodeOSW comumaaplicac~ao deanalisedecascaspeloMEF.)Chamaremosessesmodelosdemodelosdecascas. De-niremosasinformac~oesdeadjac^enciadeummodelodecascasemfunc~aodastecnicasde gerac~aodemalhasedevisualizac~aoqueapresentaremosnoCaptulo6enoCaptulo7, respectivamente.
Na Sec~ao3.5, descreveremos modelosde solidos de variedade de dimens~ao2, ou 2-manifold,baseadosemumarepresentac~aoporfronteiraintroduzidaporM
ANTYL A[74]. A representac~ao e denida por uma estrutura de dados denominada estrutura de da-dos semi-arestaeporuma colec~aode operadores, osoperadoresde Euler, responsaveis pelamanipulac~aoda estrutura de dados de talforma que a integridade topologica do modelosejamantida. Utilizaremosmodelosde solidosnanarepresentac~ao geometrica de estruturas analisadaspelometododoselementosde contorno,conformeveremosno Captulo11. (NoCaptulo 1,tambempropomosdemonstrarautilizac~aode OSWcom uma aplicac~ao de analise elastoestatica de solidos peloMEC.)
Na Sec~ao 3.6, descreveremos os modelos de decomposic~ao por celulas utilizadosna representac~ao de malhas de elementos nitos e de contorno. Um modelo de decom-posic~ao por celulas e denido por uma colec~ao de elementos (nitos ou de contorno) genericamente denominados de celulas, \colados" entre si em pontos discretos cha-mados nos. Nesse Captulo, apresentaremos a geometria das celulas; no Captulo 6 deniremos seu comportamento mec^anico.
3.2 Transformac~oes Geometricas
E usual, em muitas operac~oes geometricas em computac~ao graca, representarmos pontos emcoordenadas homog^eneas [38]. Um pontodo espaco Euclidiano R
3
com co-ordenadas Cartesianas (x;y;z) e representado, emcoordenadas homog^eneas, poruma quadrupla [X;Y;Z;W], com W 6= 0, tais que x=X=W, y=Y=W e z =Z=W. Se-gue, dessa denic~ao, que todas as coordenadas homog^eneas [Wx;Wy;Wz;W], com W 6=0, s~aorepresentac~oes distintas domesmoponto(x;y;z). (Tomaremos, para nos-sos propositos, W =1.) As coordenadas homog^eneas [1;2;3;1]e [3;6;9;3],por exem-plo, representam opontode coordenadas Cartesianas (1;2;3). N~ao consideraramos os pontosonde W =0.
1 1
O conjuntode todas asquadruplas denumerosreais [X;Y;Z ;W], excetoaquadrupla[0;0;0;0], dene ospontos do espaco projetivo orientado T
3
, sendo que [X;Y;Z ;W] e[X;Y;Z ;W] , com >0,denotamomesmoponto. Geometricamente,T
3
consistededuascopiasdoespaco Euclidiano R
3
,denominadasdeaquemealem, maisumpontonoinnitoparatodadirec~aodeR 3
. A quadrupla [xW;yW;zW;W] representa, seW >0, o ponto de coordenadas Cartesianas (x;y;z) noaquem; se W <0,aquadrupla representaomesmoponto noalem; seW =0,aquadruplarepresentaoponto
A propriedade mais importante das coordenadas homog^eneas e que toda transfor-mac~aogeometrica que levaum ponto(x;y;z)doespacoemum outro ponto (x
0 ;y 0 ;z 0 ) doespacopodeserrepresentadaporumamatrizdetransformac~aoMquatroporquatro talque 2 6 6 4 x 0 y 0 z 0 1 3 7 7 5 =M 2 6 6 4 x y z 1 3 7 7 5 : (3.1)
A seguir, apresentaremos asmatrizesde transformac~oes queutilizaremos para mo-delagemgeometrica.
Translac~oes
A translac~ao de um ponto (x;y;z) porum vetor (t x ;t y ;t z ) resultaum ponto (x 0 ;y 0 ;z 0 ) taisque x 0 =x+t x ; y 0 =y+t y ; z 0 =z+t z : (3.2)
Se utilizarmos as coordenadas homog^eneas [x;y;z;1] e [x 0 ;y 0 ;z 0 ;1], a transformac~ao ca denida pelaEquac~ao (3.1), sendo amatriz de transformac~aodada por
T(t x ;t y ;t z )= 2 6 6 4 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 3 7 7 5 : (3.3)
Transformac~oes de Escala
Atransformac~aodeescaladeumpontoemtornodaorigemdosistemade coordenadas edenida pelamatriz de transformac~ao
S (s x ;s y ;s z )= 2 6 6 4 s x 0 0 0 0 s y 0 0 0 0 s z 0 0 0 0 1 3 7 7 5 ; (3.4)
ondeospar^ametross x
,s y
es z
,todosn~ao-nulos,s~aoosfatoresde escalaemrelac~aoaos eixos x, y e z, respectivamente. Na Figura 3.1e ilustrada a transformac~ao de escala dos vertices de um cubounitarioparas
x =2, s y =1=2 e s z =1.
A matriz de transformac~ao de escala emtorno de um pontoqualquer P(p x ;p y ;p z ) pode ser obtida apartir da combinac~aoda seguintesequ^encia de transformac~oes:
1. Translac~aode P para a origem.
y
y
z z
x
x
Figura3.1: Transformac~aode escala emtorno daorigem.
Essa combinac~aode transformac~oes,ilustradanaFigura3.2para opontoP(0;0;1)de um cubo unitarioes
x =s
y =s
z
=2,e expressa peloproduto das matrizes T(p x ;p y ;p z )S(s x ;s y ;s z )T( p x ; p y ; p z ); (3.5)
o qual dene amatriz de escala em torno de um pontoqualquer
S(P;s x ;s y ;s z )= 2 6 6 4 s x 0 0 p x (1 s x ) 0 s y 0 p y (1 s y ) 0 0 s z p z (1 s z ) 0 0 0 1 3 7 7 5 : (3.6) . (1) (3) . . . P P P (2) z z z z y y y y x x x x P
Figura3.2: Transformac~aode escala emtorno de um pontoqualquer.
Rotac~oes
Antes de examinarmos arotac~aode um pontoemtornode um eixoqualquer, conside-raremosas rotac~oes em torno dos eixos Cartesianos x, y e z. A matriz de rotac~ao de um ponto emtorno doeixo xedada por [38]
R x ()= 2 6 6 4 1 0 0 0 0 cos sen 0 0 sen cos 0 0 0 0 1 3 7 7 5 ; (3.7)
onde e o^angulode rotac~ao, consideradopositivo setomadode acordocom osentido da regra da m~ao direita, aplicada no eixo de rotac~ao. Na Figura 3.3(a) e ilustrada a
A rotac~ao de um ^angulo em torno do eixo y, ilustrada na Figura 3.3(b) para =90
o
,e denida pelamatrizde transformac~ao
R y ()= 2 6 6 4 cos 0 sen 0 0 1 0 0 sen 0 cos 0 0 0 0 1 3 7 7 5 : (3.8)
Similarmente,a matrizde rotac~aodeum ^angulo em tornodoeixoz, ilustradana Figura3.3(c) para =90 o ,e dada por R z ()= 2 6 6 4 cos sen 0 0 sen cos 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (3.9) . x y x y . P x y z z z (a) (b) x y z (c) . P P P .
Figura3.3: Rotac~oes emtorno dos eixos coordenados.
Consideremos, agora, a rotac~ao de um ^angulo em torno de um eixo qualquer que passa pela origem do sistema de coordenadas, denido por um vetor unitario n(n x ;n y ;n z
). Para obtermos a matriz de rotac~ao utilizaremos, sem demonstrac~oes, o conceito de quaternion,proposto porHAMILTON [49] em 1843.
Umquaternion qeumaestrutura algebricaconstitudade duas partes: um escalar s e um vetor r(r x ;r y ;r z
), ou q= [s;r]. A multiplicac~ao de dois quaternions q 1 e q 2 e denida como q 1 q 2 =[s 1 ;r 1 ][s 2 ;r 2 ]=[(s 1 s 2 r 1 r 2 );(s 1 r 2 +s 2 r 1 +r 1 r 2 )]: (3.10) Um quaternion unitario e um quaternion onde s
2 +r 2 x +r 2 y +r 2 z =1. Uma rotac~aode um ^angulo em tornodo versor n edenida peloquaternion unitario
q=[s;r]=[cos (=2);sen(=2)n]: (3.11) Arotac~aoinversaq
1
edenidainvertendo osinalde soude rnaEquac~ao (3.11),mas n~aodeambos. Para rotacionarumpontoP(x;y;z)porum quaternionq,escrevemoso pontoP comooquaternionp=[0;(x;y;z)]etomamos,deacordocomaregradenida naEquac~ao(3.10), oproduto p 0 =[0;(x 0 ;y 0 ;z 0 )]=q 1 pq; (3.12)
ondeP 0 (x 0 ;y 0 ;z 0
)eopontoP rotacionado. Desenvolvendo aEquac~ao (3.12),podemos escrever P
0
=RP, onde R e uma matriz de rotac~ao de um ^angulo em torno de n cuja vers~ao homog^eneaedada por
R(n;)= 2 6 6 4 1 2(r 2 y +r 2 z ) 2(r x r y sr z ) 2(r x r z +sr y ) 0 2(r x r y +sr z ) 1 2(r 2 x +r 2 z ) 2(r y r z sr x ) 0 2(r x r z sr y ) 2(r y r z sr x ) 1 2(r 2 x +r 2 y ) 0 0 0 0 1 3 7 7 5 ; (3.13)
com s e r denidos na Equac~ao (3.11). Escolhemos a abordagem baseada em quater-nions para derivar a matriz de rotac~ao em torno de um eixo qualquer passando pela origem porque sua implementac~ao emcomputadorenvolve um numero menorde ope-rac~oes. (Veja, por exemplo, ROGERS [98] para uma derivac~aobaseada em operac~oes vetoriais.)
2
A matriz de rotac~ao de um angulo^ em torno de um eixo qualquer n(n x ;n y ;n z ) passando por um ponto P(p
x ;p
y ;p
z
) distinto da origem e obtida, como no caso da escala em tornode um ponto qualquer, pelaseguinte composic~aode transformac~oes:
1. Translac~ao de P para origem.
2. Rotac~aoem torno do eixon passando pelaorigem. 3. Translac~ao talque o pontona origemretorne aP. A matrizresultantee R(P;n;)= 2 6 6 4 R 11 R 12 R 13 p x (R 11 p x +R 12 p y +R 13 p z ) R 21 R 22 R 23 p y (R 21 p x +R 22 p y +R 23 p z ) R 31 R 32 R 33 p z (R 31 p x +R 32 p y +R 33 p z ) 0 0 0 1 3 7 7 5 ; (3.14) onde R ij , i=1;2;3,j =1;2;3,eum elementoda matriz(3.13).
Umaoutrarotac~aobastanteutil earotac~ao de eixos. NaFigura3.4s~aomostrados dois sistemas de coordenadas Cartesianas, ambos com origem no ponto O, denidos pelos eixosx 1 ;x 2 ;x 3 e u 1 ;u 2 ;u 3 ,respectivamente. Seja c ij
o cossenodiretor doeixo u i em relac~ao ao eixo x
j
. A matriz de rotac~ao que transforma as coordenadas x 1 ;x 2 ;x 3 nas coordenadas u 1 ;u 2 ;u 3 e[38, 101] R c = 2 6 6 4 c 11 c 12 c 13 0 c 21 c 22 c 23 0 c 31 c 32 c 33 0 0 0 0 1 3 7 7 5 : (3.15) Inversamente, R 1 c = R T c (R c
e uma matriz ortogonal) transforma as coordenadas u 1 ;u 2 ;u 3 nas coordenadas x 1 ;x 2 ;x 3 .
AEquac~ao(3.1) pode ser facilmenteimplementadaemC. Utilizaremosaestrutura
t3DVector
doPrograma3.1pararepresentarascoordenadasCartesianasdeumponto no espaco. 2 Oresultadoobtidoe 2 6 6 4 n 2 x +(1 n 2 x )cos n x n y (1 cos) n z sen n z n x (1 cos)+n y sen 0 n x n y (1 cos)+n z sen n 2 y +(1 n 2 y )cos n y n z (1 cos) n x sen 0 n z n x (1 cos) n y sen n y n z (1 cos)+n x sen n 2 z +(1 n 2 z )cos 0 0 0 0 1 3 7 7 5 :O x 2 u 2 x 1 u 1 P u 3 x 3
Figura 3.4: Rotac~aode eixos.
struct t3DVector
fdouble x;
double y;
double z;
g; // t3DVector
Programa3.1: Denic~ao de pontonoespaco.
A func~aode transformac~aoemostradano Programa3.2. Note quequaisquer com-posic~oes das matrizesde transformac~aoapresentadas anteriormentepossuema forma
2 6 6 4 r 11 r 12 r 13