• Nenhum resultado encontrado

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 de nic~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, seramaise ciente,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 gra cos bem simples, Sec~ao 3.3. Um modelo gra co 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, ede niremos um modelo gra co como uma colec~ao de primitivos que podem ser hierarquicamente agrupados, como descrito no Captulo 2. Modelos gra cos ser~ao uteis, por exemplo, narepresentac~aogeometricade isolinhaseisosuperfcies, comoveremosnoCaptulo7.

vante. Asinformac~oesarmazenadasnomodelon~aos~aosu cientespara 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 super cial 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 exempli caremos 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 de nida 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 de nido 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 de niremos seu comportamento mec^anico.

3.2 Transformac~oes Geometricas 

E usual, em muitas operac~oes geometricas em computac~ao gra ca, 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 de nic~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], de ne 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, maisumpontonoin nitoparatodadirec~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 de nida 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 ede nida 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 de ne 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 de nida 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, de nido 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 de nida 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 ede nida peloquaternion unitario

q=[s;r]=[cos (=2);sen(=2)n]: (3.11) Arotac~aoinversaq

1 

ede nidainvertendo osinalde soude rnaEquac~ao (3.11),mas n~aodeambos. Para rotacionarumpontoP(x;y;z)porum quaternionq,escrevemoso pontoP comooquaternionp=[0;(x;y;z)]etomamos,deacordocomaregrade nida 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 de nidos 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, de nidos 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

f

double x;

double y;

double z;

g

; // t3DVector

Programa3.1: De nic~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

Documentos relacionados