• Nenhum resultado encontrado

5 Simplificação: Extração da Malha Base

N/A
N/A
Protected

Academic year: 2021

Share "5 Simplificação: Extração da Malha Base"

Copied!
21
0
0

Texto

(1)

Este cap´ıtulo descreve a primeira grande etapa do m´ etodo: a extra¸c˜ ao da malha base, que ´ e baseada no m´ etodo [54]. Para tal, ser˜ ao inicialmente extra´ıdas estruturas contendo informa¸c˜ oes em alt´ıssima resolu¸c˜ ao do objeto (grafo de conectividade). Estas altas resolu¸c˜ oes tˆ em como limite a pr´ opria resolu¸c˜ ao do volume. A partir destas informa¸c˜ oes de alta resolu¸c˜ ao s˜ ao calculadas outras estruturas (cobertura de discos e cobertura de Voronoi) que visam obter uma estrutura simplificada (a malha base), por´ em, contendo informa¸c˜ ao suficiente para manter a topologia do objeto contido no volume.

A malha base deve contribuir para que as propriedades descritas na se¸c˜ ao 3.1 sejam alcan¸cadas: possui a topologia correta do objeto, ´ e adaptativa, possui triˆ angulos com boa raz˜ ao de aspecto, pode representar superf´ıcies com ou sem bordo e superf´ıcies conexas ou n˜ ao conexas. As pr´ oximas se¸c˜ oes mostram como ´ e criada cada uma das estruturas necess´ arias para extrair a malha com tais propriedades. O pseudo c´ odigo abaixo mostra a gera¸c˜ ao da malha base M . A fun¸c˜ ao ExtrairMalhaBase, chamada em ExtrairMulhaMulti (se¸c˜ ao 4.3), faz chamada ` as fun¸c˜ oes GerarGrafo, GerarCobDiscos e GerarCobVoronoi que est˜ ao descritas nas pr´ oximas se¸c˜ oes deste cap´ıtulo.

Algoritmo 2 ExtrairMalhaBase (volume V , densidade d) G ← GerarGrafo (V, d)

C ← GerarCobDiscos (G) GerarCobVoronoi (G, C )

M ← dual da Cobertura de Voronoi Retornar M

5.1

Grafo de Conectividade

O objetivo do grafo de conectividade ´ e reter todas as informa¸c˜ oes geom´ etricas e topol´ ogicas do objeto no mais alto n´ıvel de resolu¸c˜ ao poss´ıvel.

PUC-Rio - Certificação Digital Nº 9816117/CA

(2)

E uma estrutura super amostrada, a partir da qual ser˜ ´ ao aplicadas opera¸c˜ oes de simplifica¸c˜ ao para gerar a malha base. O grafo de conectividade ´ e gerado a partir da defini¸c˜ ao de alguns elementos:

Surfel Um surfel representa um peda¸co da superf´ıcie (surface element ).

Este conceito foi introduzido em [47]. Um surfel ´ e formado pela interse¸c˜ ao da iso-superf´ıcie com um voxel. A interse¸c˜ ao de um surfel com uma aresta do voxel chama-se n´ o, conforme mostra a figura 5.1a.

A id´ eia empregada para o c´ alculo dos surfels ´ e a mesma utilizada no algoritmo marching cubes [12], ou seja, o volume ´ e percorrido e os surfels s˜ ao calculados nos voxels que interceptarem a iso-superf´ıcie.

C-v´ ertice Um c-v´ ertice ou v´ ertice candidato ´ e definido como o ponto m´ edio dos n´ os de um surfel. A cada surfel ser´ a associado um c-v´ ertice (figura 5.1a). Dois c-v´ ertices ser˜ ao considerados vizinhos quando seus surfels correspondentes compartilharem pelo menos um n´ o.

Figura 5.1: Elementos para definir um grafo de conectividade.

Os c-v´ ertices e suas rela¸c˜ oes de vizinhan¸ca s˜ ao utilizados para a constru¸c˜ ao do grafo de conectividade G. Os c-v´ ertices formam os v´ ertices de G. Cada par de c-v´ ertices vizinhos v e w define uma aresta do grafo G (figura 5.1b). O peso de cada aresta e = (v, w) ´ e igual ` a distˆ ancia euclidiana entre os c-v´ ertices v e w. O nome ’c-v´ ertice’ vem do fato de todos os v´ ertices do grafo de conectividade serem candidatos a compor a malha base.

Devido ao crit´ erio de vizinhan¸ca estabelecido, a estrutura planar do grafo G permite que duas arestas se interceptem fora dos c-v´ ertices, ou seja, o grafo G n˜ ao ´ e um complexo simplicial, como mostra a aresta e = (v, w) da figura 5.1b. Por´ em, para cada aresta (v, w), s´ o ´ e poss´ıvel que ocorra, no m´ aximo, uma ´ unica interse¸c˜ ao que n˜ ao seja em um dos seus c-v´ ertices, ou seja, n˜ ao ocorrem casos como a aresta e 2 da figura 5.1c. Para justificar estas afirma¸c˜ oes basta lembrar que dois surfels s 1 e s 2 s´ o s˜ ao vizinhos se

PUC-Rio - Certificação Digital Nº 9816117/CA

(3)

compartilharem um n´ o n (figura 5.1a). Mas o n´ o n est´ a sobre a aresta de um voxel e cada aresta compartilha, no m´ aximo, 4 voxels. Assim h´ a, no m´ aximo, 4 surfels vizinhos em n. Estes 4 surfels correspondem a 4 c-v´ ertices todos conectados entre si conforme mostra a figura 5.1b.

A figura 4.1 mostra o grafo de conectividade extra´ıdo de um dado volum´ etrico. Abaixo encontra-se o pseudo c´ odigo para a gera¸c˜ ao do grafo de conectividade:

Algoritmo 3 GerarGrafo (volume V , densidade d)

Percorrer V , verificando os voxels que interceptam a iso-superf´ıcie d e gerar o grafo G

Retornar G

5.2

Cobertura de Discos

Uma vez extra´ıdo o grafo de conectividade, ´ e necess´ ario simplificar esta estrutura para gerar a malha. Sendo assim, uma cobertura de discos C (G), aplicada ao grafo G ´ e uma estrutura, conforme defini¸c˜ ao na se¸c˜ ao 2.2, cujo objetivo ´ e selecionar um conjunto de c-v´ ertices do grafo G que possivelmente ir˜ ao compor a malha base. Para gerar esta estrutura, inicialmente utilizada no trabalho [54], ´ e necess´ ario definir um importante operador topol´ ogico sobre um grafo de conectividade G: a geod´ esica sobre o grafo G.

Dados dois c-v´ ertices v e w pertencentes a G, a geod´ esica geod (v,w)

´ e definida como o menor caminho, em G, entre v e w, ou seja, geod (v,w)

´ e uma curva sobre G, formada por todos os c-v´ ertices que minimizam a distˆ ancia entre v e w (figura 5.2a). O comprimento de geod (v,w) representa a distˆ ancia m´ınima entre v e w, em G, e ´ e denotado por dist(v, w). ´ E importante observar que, se a ∈ geod (v,w) e b ∈ geod (v,w) , ent˜ ao geod (a,b) ⊂ geod (v,w) (figura 5.2a). Al´ em disto, dados trˆ es v´ ertices u, v e w, o conjunto geod (u,v) ∪ geod (v,w) n˜ ao ´ e necessariamente igual a geod (u,w) .

5.2.1

Gera¸ c˜ ao de um Disco

O conceito de geod´ esica ser´ a utilizado para a gera¸c˜ ao dos discos que formam a cobertura de disco C (G).

Um disco D r v , com centro no c-v´ ertice v e raio r ∈ R ´ e definido como o conjunto de c-v´ ertices w ∈ G, tal que geod (v,w) tem comprimento menor que r. A figura 5.2b mostra um disco sobre o grafo G.

PUC-Rio - Certificação Digital Nº 9816117/CA

(4)

Figura 5.2: a)Geod´ esica entre v e w: geod (a,b) ⊂ geod (v,w) . b)Disco.

A gera¸c˜ ao de um disco D v r ´ e baseada no algoritmo de Dijkstra [26].

Dado o centro v e o raio r, o disco ´ e calculado propagando-se a informa¸c˜ ao de distˆ ancia a partir do seu centro. Assim, ao disco D r v , ´ e atribu´ıdo inicialmente apenas seu centro v. Os vizinhos de v, no grafo de conectividade G, s˜ ao armazenados em uma lista B , juntamente com suas distˆ ancias a v. A lista B cont´ em a borda do disco em cada instante. A propaga¸c˜ ao deve ent˜ ao seguir a partir do c-v´ ertice w ∈ B mais pr´ oximo a v: retira-se w de B e coloca-o no disco D r v . Para cada vizinho de w ´ e atualizada sua distˆ ancia ao centro v e em seguida este vizinho ´ e acrescentado ` a borda B. ´ E importante acrescentar que ` a borda B s´ o devem ser inseridos c-v´ ertices cuja distˆ ancia ao centro v seja menor ou igual a r. Assim a propaga¸c˜ ao deve seguir at´ e que a lista B esteja vazia. A figura 5.3 mostra esta id´ eia.

Figura 5.3: a)Centro do disco. b)Borda inicial. c) a h)Propaga¸c˜ ao.

A figura 5.3a mostra o centro como ´ unico ponto a compor inicialmente o disco; a figura 5.3b mostra a propaga¸c˜ ao aplicada aos vizinhos do centro,

PUC-Rio - Certificação Digital Nº 9816117/CA

(5)

que comp˜ oem a borda B (o ponto cinza em ”X”representa o c-v´ ertice da borda mais pr´ oximo ao centro do disco e a partir do qual a propaga¸c˜ ao deve seguir). As figuras 5.3c-h mostram a propaga¸c˜ ao sempre feita a partir do ponto de menor distˆ ancia e a atualiza¸c˜ ao da borda a partir de seus vizinhos.

O algoritmo GerarDisco mostra o pseudo c´ odigo da propaga¸c˜ ao. Uma maneira de tornar o algoritmo de gera¸c˜ ao de um disco eficiente, ´ e tratar a borda B como uma estrutura heap sort, de modo que o c-v´ ertice w ∈ B com a menor distˆ ancia ao centro v esteja sempre no topo da estrutura.

Algoritmo 4 GerarDisco (centro v ∈ G, raio r) Insira v no disco D r v

Coloque em B todos os vizinhos de v Enquanto B 6= ∅

Retire de B o c-v´ ertice w com menor distˆ ancia a v Insira w no disco D v r

Para todo u vizinho de w, com u / ∈ D v r e (dist(v, w) + dist(w, u)) ≤ r Se u ∈ B, Ent˜ ao

Se dist(v, u) > (dist(v, w) + dist(w, u)), Ent˜ ao Substitua dist(v, u) por (dist(v, w) + dist(w, u))

Sen˜ ao dist(v, u) ← (dist(v, w) + dist(w, u)) e coloque u em B FimPara

FimEnquanto Retorne D r v

Eventos Topol´ ogicos em um Disco

Para que o disco D v r esteja topologicamente correto (homeomorfo a um disco planar), deve-se garantir que, se w ∈ D r v , ent˜ ao existe uma ´ unica geod´ esica geod (v,w) , ou seja, um ´ unico caminho m´ınimo entre v e w. A figura 5.4 mostra trˆ es situa¸c˜ oes onde pode haver mais de uma geod´ esica entre o centro v e outro c-v´ ertice w, provocando erros topol´ ogicos no disco. A figura 5.4a mostra duas geod´ esicas (uma cinza e outra preta) entre os c- v´ ertices v e w; isto acontece devido a uma descontinuidade no interior do disco, fazendo com que sua topologia se torne incorreta (o disco possui duas bordas). Na figura 5.4b apenas o disco D v r ´ e v´ alido, pois o outro disco, D R v , se auto intercepta, alterando sua topologia, j´ a que passa a ter duas bordas (os discos s˜ ao mostrados sobre um mesmo objeto, em duas posi¸c˜ oes diferentes); perceba que no disco D v R , devido ` a auto-interse¸c˜ ao, ´ e poss´ıvel haver duas geod´ esicas entre o centro e algum c-v´ ertice situado na regi˜ ao de auto interse¸c˜ ao. A figura 5.4c mostra um grafo no qual, ` a medida que s˜ ao criados discos com raios maiores, a borda converge para um ponto, tornando

PUC-Rio - Certificação Digital Nº 9816117/CA

(6)

o disco topologicamente incorreto. No caso das figuras 5.4a e b, o evento topol´ ogico a ser evitado ´ e a Desconectividade da Borda e na figura 5.4c ´ e o Desaparecimento da Borda, definidos como:

Seja w ∈ B o c-v´ ertice da borda com distˆ ancia m´ınima ao centro do disco. Sejam V w = {u, u ´ e vizinho de w e u ∈ D r v } e B w = {u, u ´ e vizinho de w e u ∈ B }. Ocorre o evento topol´ ogico de desconectividade da borda B se o conjunto V w for desconexo. Ocorre o evento de desaparecimento da borda se B w = B.

Figura 5.4: a)Buraco. b)D R v com auto interse¸c˜ ao. c) Borda converge para um ponto.

O algoritmo GerarDiscoComEventos mostra a gera¸c˜ ao de um disco, verificando a ocorrˆ encia de eventos topol´ ogicos. Quando ocorre um evento, o raio do disco ´ e reduzido ` a metade, at´ e que o evento desapare¸ca.

5.2.2

Gera¸ c˜ ao da Cobertura de Discos

Existe uma cobertura de discos C (G) associada ao grafo de conectividade G se, para todo c-v´ ertice u ∈ G, exitir um disco D r v que contenha u (se¸c˜ ao 2.2). A cobertura de discos C(G) ser´ a composta por discos homeomorfos a discos planares, ou seja, os eventos topol´ ogicos devem ser tratados. Para garantir algumas das propriedades importantes da malha (se¸c˜ ao 3.1), a gera¸c˜ ao da cobertura de discos ser´ a feita de acordo com duas restri¸c˜ oes importantes [54]:

– A cobertura C(G) ser´ a formada unicamente por discos independentes.

Dois discos D v r e D w R s˜ ao independentes se v / ∈ D R w e w / ∈ D v r .

– Dado um disco D v r , s´ o ´ e permitido a outro disco D w R interceptar D v r se a rela¸c˜ ao entre os raios r e R for: r/2 ≤ R ≤ 2r.

PUC-Rio - Certificação Digital Nº 9816117/CA

(7)

Algoritmo 5 GerarDiscoComEventos (centro v ∈ G, raio r) haEvento ← verdadeiro

Enquanto (haEvento) D r v ← ∅ , B ← ∅

Inserir v no disco D v r e inserir em B todos os vizinhos de v Enquanto B 6= ∅

Retirar de B o c-v´ ertice w com menor distˆ ancia a v Se o conjunto V w ´ e desconexo ou B w = B, Ent˜ ao

haEvento←verdadeiro, r ← r/2 break

FimSe

haEvento ← falso Inserir w no disco D r v

Para todo u vizinho de w, com u / ∈ D r v e (dist(v, w) +dist(w, u)) ≤ r Se u ∈ B , Ent˜ ao

Se dist(v, u) > (dist(v, w) + dist(w, u)), Ent˜ ao Substitua dist(v, u) por (dist(v, w) + dist(w, u))

Sen˜ ao dist(v, u) ← (dist(v, w) + dist(w, u)) e colocar u em B FimPara

FimEnquanto FimEnquanto Retornar D r v

Como os centros dos discos da cobertura C (G) formar˜ ao os v´ ertices da malha base, o principal objetivo das restri¸c˜ oes acima ´ e garantir boas raz˜ oes de aspecto aos triˆ angulos da malha. Considerando que a raz˜ ao de aspecto de um triˆ angulo seja definida como a raz˜ ao entre o lado menor e o lado maior, os triˆ angulos gerados ter˜ ao raz˜ ao de aspecto entre 1 e 1/3. A figura 5.5a mostra um triˆ angulo cinza escuro (com lados r, r e r e raz˜ ao de aspecto 1) e outro triˆ angulo cinza claro (com lados r, 2r e 3r e raz˜ ao de aspecto 1/3).

Figura 5.5: a)Triˆ angulo com raz˜ ao de aspecto 1 (cinza escuro) e 1/3 (cinza claro). b)Classifica¸c˜ ao das regi˜ oes ao redor dos discos.

PUC-Rio - Certificação Digital Nº 9816117/CA

(8)

A principal id´ eia para gerar C(G) ´ e que, ` a medida que v˜ ao sendo criados discos sobre os c-v´ ertices do grafo de conectividade G, tais c-v´ ertices v˜ ao sendo classificados em v´ arios subconjuntos: o conjunto F, que cont´ em os c-v´ ertices que n˜ ao podem originar novos discos (c-v´ ertices proibidos), e os conjuntos R i , que cont´ em os c-v´ ertices que podem originar discos com raio, no m´ aximo, r max /2 i . Supondo que o raio m´ aximo considerado seja r max e supondo que R = r max /2 i , se um disco D v R ´ e gerado sobre G, todos os c- v´ ertices de D v R s˜ ao classificados como c-v´ ertices proibidos e ser˜ ao colocados no conjunto F , pois eles n˜ ao poder˜ ao ser o centro de nenhum outro disco (restri¸c˜ ao dos discos independentes). Os c-v´ ertices situados fora de D v R , at´ e a uma distˆ ancia R ser˜ ao inseridos no conjunto R i e poder˜ ao ser o centro de outros discos com raio, no m´ aximo, igual a R (restri¸c˜ ao da rela¸c˜ ao entre os raios). A figura 5.5b mostra a regi˜ ao proibida (F) em branco, a regi˜ ao R i , onde podem ser gerados discos com raio at´ e r max /2 i , em cinza escuro e a regi˜ ao R i+1 , onde podem ser gerados discos com raio at´ e r max /2 i+1 , em cinza claro.

O pseudo c´ odigo da fun¸c˜ ao GerarCobDiscos mostra como s˜ ao gerados discos em centros escolhidos em um dos conjuntos R i ´s n˜ ao vazio, de menor i (i = 0, 1, 2, ...). ´ E importante lembrar que, a partir de um raio m´ aximo, r max , o conjunto R 0 cont´ em c-v´ ertices onde podem ser gerados discos com raio at´ e r max , R 1 cont´ em c-v´ ertices onde podem ser gerados discos com raio at´ e r max /2 e, de um modo geral, R i cont´ em c-v´ ertices onde podem ser gerados discos com raio at´ e r max /2 i .

Algoritmo 6 GerarCobDiscos (grafo de conectividade G) Para todos os R i , Fa¸ca R i ← ∅ ,

F ← ∅ , C ← ∅

Coloque todos os c-v´ ertices de G em R 0 Enquanto ∃R i 6= ∅

Remova um c-v´ ertice v do conjunto R i 6= ∅ de menor ´ındice i r = r max /2 i

D v r ← GerarDiscoComEventos (v ,r) Classificar (3r, D v r , F, R i , R i−1 ) AplicarRestricaoRaio(D v r , C ) Coloque D r v na cobertura C FimEnquanto

Retorne C

Quando um disco ´ e gerado (fun¸c˜ ao GerarDiscoComEventos), a regi˜ ao em sua volta deve ser classificada, de modo que os c-v´ ertices internos ao disco sejam atribu´ıdos ao conjunto F (c-v´ ertices pro´ıbidos) e os c-v´ ertices externos sejam atribu´ıdos a seus devidos conjuntos R i ´s, dependendo do seu

PUC-Rio - Certificação Digital Nº 9816117/CA

(9)

raio do disco. A fun¸c˜ ao Classificar mostra a classifica¸c˜ ao dos c-v´ ertices, ap´ os a gera¸c˜ ao de um disco.

Algoritmo 7 Classificar (R ∈ R , D v r , F , R i , R i−1 ) Para todos os c-v´ ertices w onde dist(v, w) ≤ R

Se dist(v, w) ≤ r, Ent˜ ao

Coloque w na lista de c-v´ ertices proibidos F Sen˜ ao Se dist(v, w) ≤ 2r e w / ∈ R j , j > i, Ent˜ ao

Coloque w na lista R i

Sen˜ ao Se dist(v, w) ≤ 3r e w / ∈ R j , j > i − 1, Ent˜ ao Coloque w na lista R i−1

FimPara

A fun¸c˜ ao AplicarRestricaoRaio ´ e utilizada ap´ os a Classificar porque se ocorrer algum evento topol´ ogico durante a gera¸c˜ ao de um disco, como o raio ´ e dividido, possivelmente o disco interceptar´ a outros discos que n˜ ao obdecer˜ ao mais ` a restri¸c˜ ao dos raios.

Algoritmo 8 AplicarRestricaoRaio (disco D Rv v , cobertura C ) Enquanto ∃D Rw w ∈ C , D v Rv ∩ D w Rw 6= ∅

Se R v > 2R w , Ent˜ ao

Recalcular o disco D v Rv de modo que R v ← R v /2 Classificar(2R v , D Rv v , F , R i , R i−1 )

AplicarRestricaoRaio(D v Rv , C) break

Sen˜ ao Se 2R v < R w , Ent˜ ao

Recalcular o disco D w Rw de modo que R w ← R w /2 Classificar(2R w , D Rw w , F , R i , R i−1 )

AplicarRestricaoRaio(D w Rw , C ) AplicarRestricaoRaio(D v Rv , C) break

FimSen˜ ao FimEnquanto

A fun¸c˜ ao AplicarRestricaoRaio verifica se o novo disco gerado viola esta restri¸c˜ ao com algum outro disco da cobertura C (G). Caso ocorra a viola¸c˜ ao entre o novo disco D v Rv e um outro disco D w Rw , o disco maior ter´ a seu raio reduzido ` a metade. Com isto uma nova classifica¸c˜ ao ´ e necess´ aria, uma vez que esta ´ e feita em fun¸c˜ ao dos raios dos discos. A fun¸c˜ ao ´ e chamada recursivamente at´ e que a rela¸c˜ ao entre os raios dos discos que se interceptarem seja obedecida.

PUC-Rio - Certificação Digital Nº 9816117/CA

(10)

5.3

Cobertura de Voronoi

Dada uma cobertura de discos C (G)e um disco D v Rv ∈ C (G), uma c´ elula de Voronoi V C G (v) ´ e definida como o conjunto de todos os c-v´ ertices w ∈ G tal que, para qualquer disco D u Ru ∈ C(G), o comprimento da geod´ esica geod (w,v) seja menor que o comprimento da geod´ esica geod (w,u) , ou seja, dist(w, v) < dist(w, u). A cobertura de Voronoi V C G ´ e definida como o conjunto de todas as c´ elulas de Voronoi definidas a partir de C (G):

V C G = {V C G (v), v ´ e o centro do disco D v Rv ∈ C(G)}. A figura 5.6b mostra cinco c´ elulas de Voronoi, definidas a partir da cobertura da figura 5.6a.

Figura 5.6: a)Grafo de Conectividade b)Cobertura de discos. c) e b)C´ elulas de Voronoi.

Alguns conceitos importantes relacionados ` a cobertura de Voronoi V C G s˜ ao: c´ elulas adjacentes, fronteira de uma c´ elulas e v´ ertices de Voronoi, definidos a seguir.

Duas c´ elulas de Voronoi V C G (v) e V C G (w) s˜ ao chamadas adjacentes ou vizinhas se existem c-v´ ertices x ∈ V C G (v) e y ∈ V C G (w), tal que x e y s˜ ao vizinhos em G (figura 5.7).

O conjunto de c-v´ ertices x ∈ V C G (v) com a propriedade de que existe y ∈ V C G (w), tal que x e y s˜ ao vizinhos em G ´ e chamado de fronteira de V C G (v) com a c´ elula V C G (w) e ´ e representado por F ront(V C G (v), V C G (w)) ou simplesmente F ront(v, w). Da mesma forma o conjunto de c-v´ ertices y define uma fronteira em V C G (w), chamada F ront(w, v). Assim, cada par de c´ elulas adjacentes (V C G (v), V C G (w)) define uma fronteira F ront(v, w) ⊂ V C G (v) e uma fronteira F ront(w, v) ⊂ V C G (w). Pelas propriedades das c´ elulas, F ront(v, w) e F ront(w, v) s˜ ao conjuntos disjuntos. Uma c´ elula V C G (v) ter´ a tantas fronteiras quanto forem suas c´ elulas adjacentes (figura 5.7).

um c-v´ ertice x ∈ V C G (v) ´ e chamado de v´ ertice de Voronoi se ele pertencer a mais de uma fronteira de V C G (v). Um v´ ertice de Voronoi ´ e chamado de pr´ oprio se pertencer exatamente a duas fronteiras, e ´ e chamado

PUC-Rio - Certificação Digital Nº 9816117/CA

(11)

de impr´ oprio se pertencer a mais de duas fronteiras. Na figura 5.7, o c-v´ ertice z ´ e um v´ ertice de Voronoi pr´ oprio.

Figura 5.7: Fronteiras das c´ elulas e v´ ertices de Voronoi.

A fun¸c˜ ao GerarCobVoronoi abaixo mostra a gera¸c˜ ao da cobertura de Voronoi V C G (v). Esta fun¸c˜ ao foi chamada em ExtrairMalhaBase (in´ıcio do cap´ıtulo), recebendo como parˆ ametros o grafo de conectividade G e a cobertura de discos C(G).

Algoritmo 9 GerarCobVoronoi (c-v´ ertices CV , discos DISCOS) Para cada disco D v r ∈ DISCOS,

Fazer V C G (v) ← ∅ , onde V C G (v) ∈ V C G ´ e a c´ elula correspondente a D r v Armazenar em CELS uma referˆ encia ` a c´ elula V C G (v)

FimPara

IniciarCelulas (CV , CELS)

EstabelecerFronteiras (CV , CELS)

Se (HaViolacaoCelulas (CELS, V IOLCEL) )

RefinarCobDisc (V IOLCEL, REF DISC , N OV OSDISC )

Para cada c´ elula V C G (v) correspondente a um disco D v r ∈ REF DISC Inserir em V os c-v´ ertices contidos na c´ elula V C G (v)

e os contidos nas c´ elulas vizinhas de V C G (v)

Inserir em RD referˆ encias a D v r e aos discos correspondentes

`

as vizinhas de V C G (v) FimPara

GerarCobVoronoi (V , RD ∪ N OV OSDISC) FimSe

Cada c´ elula de Voronoi V C G (v) ´ e um subconjunto de um disco D r v , de modo que V C G (v) corresponde a um ´ unico disco D r v . Assim, a cada disco D r v ´ e associada uma c´ elula V C G (v), inicialmente vazia. O pr´ oximo passo ´ e atribuir a cada c´ elula um conjunto de c-v´ ertices. A fun¸c˜ ao IniciarCelulas mostra como esta id´ eia ´ e implementada: para cada c-v´ ertice x ∈ CV , procurar, dentre os discos D r v ∈ DISCOS que se interceptam em x, qual disco possui o centro v mais pr´ oximo a x. ` A c´ elula V C G (v), correspondente ao disco D v r , ´ e

PUC-Rio - Certificação Digital Nº 9816117/CA

(12)

acrescentado o c-v´ ertice x. Para agilizar o c´ alculo das fronteiras (mostrado na fun¸c˜ ao EstabelecerFronteiras), pode-se armazenar, em cada c-v´ ertice x, a c´ elula ` a qual x pertence.

A fun¸c˜ ao IniciarCelulas mostra a constru¸c˜ ao das c´ elulas que formam a lista CEL, a partir do conjunto de c-v´ ertices CV . Lembre-se que a primeira vez que a fun¸c˜ ao GerarCobVoronoi for chamada (fun¸c˜ ao ExtrairMalhaBase), o parˆ ametro CV corresponde ao grafo G.

Algoritmo 10 IniciarCelulas (c-vertices CV , c´ elulas CEL) Para cada c-vertice x ∈ CV ,

Procurar, entre os discos {D v r } que contˆ em x, o que possui o menor valor dist(x, v)

Inserir x na c´ elula V C G (v ) ∈ CEL, correspondente ao disco D v r Informar ao c-v´ ertice x que sua c´ elula ´ e V C G (v).

FimPara

Ap´ os iniciar as c´ elulas, o pr´ oximo passo ´ e estabelecer as fronteiras entre as c´ elulas. A fun¸c˜ ao EstabelerFronteiras mostra como estas rela¸c˜ oes s˜ ao estabelecidas.

Algoritmo 11 EstabelecerFronteiras (c-vertices CV , c´ elulas CEL) Para cada c´ elula V C G (v) ∈ CEL

Para cada c-vertice x ∈ V C G (v) Para cada vizinho y ∈ G de x

Se y pertence a uma c´ elula V C G (w) tal que V C G (w) 6= V C G (v), Ent˜ ao Inserir x em F ront(v, w) e Insira y em F ront(w, v)

Indicar que as c´ elulas V C G (v) e V C G (w) s˜ ao vizinhas FimSe

FimPara

S´ o as chamadas das fun¸c˜ oes IniciarCelulas e EstabelecerFronteiras, em GerarCobVoronoi, j´ a seriam suficientes para gerar a cobertuta de Voronoi V C G . Por´ em, h´ a situa¸c˜ oes em que a cobertura de Voronoi pode n˜ ao ser suficiente para reconstruir corretamente a malha base, mesmo levando em conta os eventos topol´ ogicos durante a cria¸c˜ ao da cobertura de discos C. Mesmo com discos topologicamente corretos, ´ e poss´ıvel que a quantidade de discos (e consequentemente a quantidade de c´ elulas) n˜ ao seja suficiente para gerar a malha base. Isto se deve ao problema cl´ assico de representa¸c˜ ao e reconstru¸c˜ ao de objetos gr´ aficos [24], onde as informa¸c˜ oes que representam um objeto devem ser suficientes para reconstru´ı-lo (Teorema de Nyquist ).

A figura 5.8 ilustra este problema. Na figura 5.8a as c´ elulas V C G (a) e V C G (b) definem uma aresta (a, b) na malha que reconstr´ oi erroneamente

PUC-Rio - Certificação Digital Nº 9816117/CA

(13)

o cilindro. Nas figuras 5.8b e c uma superf´ıcie homeomorfa a uma esfera

´ e reconstru´ıda como uma reta e como um triˆ angulo respectivamente. O problema da figura 5.8a ocorre devido a uma descontinuidade na fronteira entre V C G (a) e V C G (b). Esta descontinuidade surge devido ` a ocorrˆ encia local de um buraco na superf´ıcie (figura 5.8a). E justamente a´ı, onde seriam necess´ arias mais que duas c´ elulas para reconstruir a topologia correta da superf´ıcie, h´ a apenas as c´ elulas V C G (a) e V C G (b). Neste caso, para garantir a topologia correta, deve-se evitar que as fronteiras das c´ elulas sejam descont´ınuas. Para evitar o erro de reconstru¸c˜ ao das figuras 5.8b e c, basta garantir que um c´ elula tenha, no m´ınimo, trˆ es celulas adjacentes. Portanto descontinuidades na fronteira entre duas c´ elulas adjacentes e c´ elulas com menos de trˆ es vizinhos adjacentes caracterizam o que ser´ a chamado de viola¸ c˜ ao de c´ elulas.

Figura 5.8: a) Reconstru¸c˜ ao de um cilindro b) e c) Reconstru¸c˜ ao de uma superf´ıcie homeomorfa ` a esfera.

A fun¸c˜ ao HaViolacaoCelulas verifica se h´ a viola¸c˜ ao nas c´ elulas do conjunto CEL. Se houver, V C G dever´ a ser refeita, de modo que tais viola¸c˜ oes sejam eliminadas. Para evitar que toda cobertura de Voronoi seja refeita, a fun¸c˜ ao HaViolacaoCelulas utiliza o parˆ ametro V IOLCEL que retorna todas as c´ elulas onde ocorreu a viola¸c˜ ao.

Algoritmo 12 HaViolacaoCelulas (c´ elulas CEL, c´ el violadas V IOLCEL) haViolacao ← falso

Para toda c´ elula V C G (v) ∈ CEL

Se ( V C G (v ) tem menos do que 3 c´ elulas vizinhas) ou (V C G (v) tem algum vizinho V C G (w), tal que F ront(v, w) seja descont´ınua) Ent˜ ao Inserir em V IOLCEL uma referˆ encia a V C G (v)

haViolacao ← verdadeiro FimSe

FimPara

Retornar haViolacao

PUC-Rio - Certificação Digital Nº 9816117/CA

(14)

Como a cobertura de Voronoi foi gerada a partir da cobertura de discos, ´ e necess´ ario manter sempre a correspondˆ encia entre um elemento D r v ∈ C(G) com um elemento V C G (v) ∈ V C G . Assim, para refazer as c´ elulas violadas (alterar seus c-v´ ertices e suas rela¸c˜ oes de vizinhan¸ca) ´ e necess´ ario tamb´ em alterar os discos correspondentes ` as c´ elulas violadas. Por´ em, as altera¸c˜ oes aplicadas ` a cobertura de discos devem manter as restri¸c˜ oes de que C(G) seja formada apenas por discos independentes e os raios de discos vizinhos devem ter uma raz˜ ao 1/2, 1 ou 2. Para manter estas restri¸c˜ oes, quase sempre ´ e necess´ ario alterar outros discos, al´ em dos discos correspondentes ` as c´ elulas violadas. A figura 5.9 ilustra este problema.

Figura 5.9: a) Cobertura de Voronoi. b) Cobertura de discos. c) Refinamento do disco D r a (seus vizinhos em negrito tamb´ em ser˜ ao refinados). d) Refinamento dos discos vizinhos. e) Nova cobertura de discos. f) Nova cobertura de Voronoi.

A figura 5.9a mostra algumas c´ elulas de uma cobertura de Voronoi, na qual a c´ elula em destaque V C G (a), com centro no c-v´ ertice a, deve ser refinada.

A figura 5.9b mostra a cobertura de discos equivalente ` a cobertura de Voronoi, destacando o disco D r a , equivalente ` a c´ elula a. A figura 5.9c mostra o refinamento do disco D r a , de acordo com a restri¸c˜ ao do raio, ou seja, D a r deve ter seu raio reduzido ` a metade, passando a ser representado como D r/2 a . Esta subdivis˜ ao implica que D a r/2 poder´ a n˜ ao mais interceptar os mesmo discos que interceptava antes do refinamento. Al´ em do mais, alguns dos discos que D a r/2 intercepta, j´ a n˜ ao obedecem mais ao crit´ erio das raz˜ oes entre

PUC-Rio - Certificação Digital Nº 9816117/CA

(15)

os raios. Assim, os discos D 2r b , D 2r d , D 2r e e D h 2r da figura 5.9c tamb´ em dever˜ ao ser refinados, pois interceptam o disco D a r/2 , que possui raio 4 vezes menor.

A figura 5.9d mostra o refinamento destes quatro discos, representados como D r b , D d r , D e r e D h r . Por´ em, ap´ os o refinamento dos discos, muitos c-v´ ertices que antes estavam dentro dos discos, est˜ ao em regi˜ oes que j´ a n˜ ao fazem parte de nenhum disco, como mostra a figura 5.9d. Nestas regi˜ oes devem ser gerados novos discos, at´ e que todos os c-v´ ertices perten¸cam a algum disco. A figura 5.9e mostra a nova cobertura de discos gerada (em destaque, os discos antigos, com centros nos c-v´ ertices a, b, c, d, e, f, g e h). A partir desta nova cobertura de discos refinada ´ e calculada a nova cobertura de Voronoi, mostrada na figura 5.9f.

A fun¸c˜ ao RefinarCobDisc recebe como parˆ ametro o conjunto V IOLCEL (calculado em HaViolacaoCelulas), contendo as c´ elulas violadas. A partir destas c´ elulas, RefinarCobDisc faz o refinamento dos discos e retorna dois importantes conjuntos: o primeiro ´ e REF DISC, que conter´ a referˆ encias para todos os discos pr´ e-existentes na cobertura de discos que foram refinados; o segundo conjunto ´ e N OV OSDISC , que conter´ a referˆ encias para os novos discos criados durante o refinamento.

Algoritmo 13 RefinarCobDisc (V IOLCEL, REF DISC, N OV OSDISC ) Enquanto V IOLCEL 6= ∅

Remover de V IOLCEL uma c´ elula V C G (v) e tomar seu disco correspondente D Rv v

Recalcular o disco D Rv v de modo que R v ← R v /2 Classificar(2R v , D v Rv , F, R i , R i−1 )

AplicarRestricaoRaio(D Rv v , C ) Enquanto ∃R i 6= ∅

Remover um c-v´ ertice w do conjunto R i 6= ∅ de menor ´ındice i R w ← Rmax/2 i

D R w

w

← GerarDisco(w, R w )

Classificar (3R w , D w R

w

, F, R i , R i−1 ) AplicarRestricaoRaio(D R w

w

, C ) Colocar D R w

w

na cobertura C FimEnquanto

Armazenar em REF DISC referˆ encias a D Rv v e aos discos refinados a partir dele

Armazenar em N OV OSDISC referˆ encias aos novos discos criados (n˜ ao os refinados)

FimEnquanto

O conjunto REF DISC ser´ a usado para refinar as c´ elulas pr´ e- existentes correspondentes aos discos refinados. No caso da figura 5.9, REF DISC conter´ a referˆ encia aos discos de centro em a, b, d, e e h

PUC-Rio - Certificação Digital Nº 9816117/CA

(16)

(refinados) e, a partir destes, ´ e poss´ıvel saber que as c´ elulas correspondentes V C G (a), V C G (b), V C G (d), V C G (e) e V C G (h) dever˜ ao ser refinadas (na realidade, todas as vizinhas destas cinco c´ elulas, que s˜ ao V C G (c), V C G (f ) e V C G (g), tamb´ em dever˜ ao ser refinadas). O conjunto N OV OSDISC ser´ a usado para gerar as novas c´ elulas da cobertura de Voronoi correspondentes aos novos discos (c´ elulas brancas da figura 5.9f).

Quando os discos s˜ ao refinados, muitos c-v´ ertices que antes estavam classificados como ’proibidos’, ou seja, estavam contidos nos discos e n˜ ao podiam ser centro de outros discos, ficam de fora dos discos refinados e passam a ter a permiss˜ ao de originar novos discos. Para gerar estes novos discos n˜ ao ´ e mais necess´ ario verificar a ocorrˆ encia dos eventos topol´ ogicos, pois tais eventos j´ a foram verificados na primeira vez que a cobertura de discos foi gerada. Por isto, foi chamada a fun¸c˜ ao GerarDisco, em vez da fun¸c˜ ao GerarDiscoComEventos.

5.4

Triangula¸ c˜ ao

Esta etapa visa gerar uma malha base a partir do dual da cobertura de Voronoi (figura 5.10).

Figura 5.10: a)Cobertura de Voronoi. b)Dual de Voronoi. c)Malha base.

Pela pr´ opria defini¸c˜ ao de superf´ıcies regulares (se¸c˜ ao 2.1), que envolve a id´ eia de que uma superf´ıcie pode ser constru´ıda atrav´ es da colagem de variados peda¸cos de papel, resulta que uma cobertura de discos formada por discos independentes ´ e como a representa¸c˜ ao de um atlas (representa¸c˜ ao planar) da superf´ıcie. Portanto a cobertura de discos gerada ret´ em corretamente a topologia da superf´ıcie. Uma consequˆ encia disto ´ e que a cobertura de Voronoi gerada sobre o grafo de conectividade tem a

PUC-Rio - Certificação Digital Nº 9816117/CA

(17)

mesma estrutura de um diagrama de Voronoi planar e seu dual equivale

`

a triangula¸c˜ ao de Delaunay. ´ E importante observar que as informa¸c˜ oes topol´ ogicas n˜ ao s˜ ao explicitamente extra´ıdas, ou seja, o genus da superf´ıcie n˜ ao ´ e calculado explicitamente durante a extra¸c˜ ao da malha base. Por´ em, estas informa¸c˜ oes podem ser obtidas a partir das caracter´ısticas de Euler da malha base.

A triangula¸c˜ ao pode ser calculada a partir das rela¸c˜ oes de vizinhan¸ca entre as c´ elulas e a partir dos v´ ertices de Voronoi, definidos na se¸c˜ ao anterior, que s˜ ao os c-v´ ertices que possuem vizinhos em mais de uma c´ elula da cobertura de Voronoi. Uma boa estrat´ egia para construir a triangula¸c˜ ao

´ e, para cada c´ elula V C G (v) ∈ V C G , gerar todos os triˆ angulos formados entre V C G (v) e suas c´ elulas vizinhas. Isto requer que as c´ elulas vizinhas estejam ordenadas em torno de V C G (v). Uma forma natural de se obter esta ordena¸c˜ ao

´ e projetando no plano tangente ` a superf´ıcie, que passa em v, os centros das c´ elulas vizinhas. Tal ordena¸c˜ ao, por´ em, pode n˜ ao refletir corretamente a disposi¸c˜ ao espacial das c´ elulas (figura 5.11a). Mesmo substituindo o plano tangente por um plano m´ edio que passe pelos centros das c´ elulas vizinhas, este problema persiste.

Figura 5.11: a) Proje¸c˜ ao no plano tangente. b)- e)Gera¸c˜ ao ordenada dos triˆ angulos em torno da c´ elula V C G (v ).

Outra alternativa para construir ordenadamente os triˆ angulos adjacentes ao c-v´ ertice v (a c´ elula V C G (v) ser´ a chamada de C atual ) ´ e, a partir de uma c´ elula vizinha inicial, chamada V atual (figura 5.11b), obter a pr´ oxima c´ elula V prox (supor V prox = V C G (w)) que seja vizinha de V C G (v ) e V atual simultaneamente e gerar o triˆ angulo cujos v´ ertices s˜ ao os centros de V C G (v), V atual e V prox , conforme mostra a figura 5.11c. O segundo triˆ angulo deve ser formado pelas c´ elulas V C G (v), V C G (w) e pela pr´ oxima c´ elula que seja vizinha de V C G (v) e de V C G (w) ao mesmo tempo. ´ E claro que esta pr´ oxima c´ elula n˜ ao pode mais ser V atual . Para tal, ser´ a definida a c´ elula V ant ` a qual ´ e atribu´ıda a c´ elula V atual (figura 5.11d). Esta c´ elula V ant ´ e usada para impedir que a busca da pr´ oxima c´ elula seja feita no sentido errado. ` A c´ elula V atual ser´ a atribu´ıda V prox e V prox ser´ a a pr´ oxima c´ elula procurada, ou seja, ser´ a

PUC-Rio - Certificação Digital Nº 9816117/CA

(18)

uma c´ elula vizinha de C atual e de V atual ao mesmo tempo, al´ em de exigir-se que V prox 6= V ant . O segundo triˆ angulo ent˜ ao ´ e formado pelos centros das c´ elulas V C G (v), V atual e V prox (figura 5.11d). Este processo deve ser repetido at´ e que todos os triˆ angulos que compartilham o c-v´ ertice v sejam gerados (figura 5.11e). A c´ elula V C G (v) deve ser ent˜ ao marcada. Esta marca¸c˜ ao evita que quando a c´ elula atual C atual for algum vizinho de V C G (v), sejam gerados triˆ angulos repetidos, ou seja, triˆ angulos que j´ a foram gerados quando C atual era igual a V C G (v).

O c´ alculo da triangula¸c˜ ao em volta da c´ elula C atual acaba quando todas as suas c´ elulas vizinhas forem percorridas (ordenadamente). Por´ em, quando n˜ ao ´ e poss´ıvel encontrar nenhuma c´ elula vizinha de C atual e V atual , e, no entanto nem todos os vizinhos de C atual foram percorridos, ´ e sinal de que a c´ elula atual est´ a no bordo da superf´ıcie e isto deve ser refletido na triangula¸c˜ ao (figura 5.12).

Figura 5.12: Triangula¸c˜ ao de uma c´ elula do bordo.

O processo de gera¸c˜ ao de triˆ angulos em torno de uma c´ elula C atual , gera triˆ angulos sempre com o mesmo sentido (cada triˆ angulo ´ e formado pelos centros das c´ elulas C atual , V atual , V prox , ou seja, no sentido anti-hor´ ario). Para garantir isto, quando o primeiro triˆ angulo em volta de C atual for gerado, deve-se garantir que a c´ elula V prox escolhida manter´ a o sentido correto do triˆ angulo, uma vez que existem duas c´ elulas vizinhas a C atual e a V atual ao mesmo tempo. A figura 5.13a mostra as c´ elulas V 1 e V 2 vizinhas a C atual e a V atual simultaneamente. Supondo que p(x) sejam as coordenadas do c-v´ ertice x e que c, v a , v 1 e v 2 s˜ ao respectivamente os centros da c´ elula C atual , V atual , V 1 e V 2 , para decidir qual das duas c´ elulas deve ser escolhida como V prox , basta comparar os vetores ~ v 1 = [p(v a ) − p(c)] × [p(v 1 ) − p(c)] e

~ v 2 = [p(v a ) − p(c)] × [p(v 2 ) − p(c)] com o vetor ~c, normal ao centro de C atual . Se o produto escalar ~c.~ v 1 > 0, ent˜ ao V prox = V 1 , sen˜ ao V prox = V 2 (~c.~ v 2 > 0) (figura 5.13b). A normal ~c no c-v´ ertice c pode ser calculada utilizando o gradiente da transformada de distˆ ancia do volume original.

PUC-Rio - Certificação Digital Nº 9816117/CA

(19)

Figura 5.13: a)Escolha de V prox entre V 1 e V 2 b)Rela¸c˜ ao entre os vetores. c) Ordena¸c˜ ao incorreta. c)Vetores tomados nos c-v´ ertices de Voronoi.

Na verdade, ´ e mais seguro que, em vez de calcular os vetores ~ v 1 , ~ v 2 e ~c em rela¸c˜ ao aos centros das c´ elulas, eles sejam tomados localmente em c-v´ ertices da regi˜ ao de interse¸c˜ ao entre as c´ elulas, pois tal regi˜ ao se aproxima localmente a um plano e a rela¸c˜ ao entre este trˆ es vetores reflete corretamente a ordena¸c˜ ao das c´ elulas. As figuras 5.13c e d, onde as c´ elulas C atual , V atual , V 1 e V 2 est˜ ao sobre uma superf´ıcie, mostram esta id´ eia: a figura 5.13c mostra os c-v´ ertices c, v a , v 1 e v 2 tomados nos centros das c´ elulas e a rela¸c˜ ao entre os vetores ~ v 1 , ~ v 2 e ~c refletindo erroneamente a ordena¸c˜ ao entre as c´ elulas. Na figura 5.13d, que mostra a regi˜ ao equivalente ` a elipse da figura 5.13c ampliada, o c-v´ ertice c ´ e escolhido como v´ ertice de Voronoi da c´ elula C atual e v a ∈ V atual , v 1 ∈ V 1 e v 2 ∈ V 2 s˜ ao vizinhos de c (tamb´ em s˜ ao v´ ertices de Voronoi), de modo que os vetores ~ v 1 , ~ v 2 e ~c, refletem corretamente a ordena¸c˜ ao das c´ elulas. Uma vez escolhida V prox pela primeira vez, os pr´ oximos triˆ angulos ser˜ ao sempre orientados no sentido correto, pois a c´ elula V ant impedir´ a que a busca da pr´ oxima c´ elula seja feita erroneamente.

Devido ao crit´ erio de vizinhan¸ca adotado entre as c´ elulas da cobertura de Voronoi, ´ e comum a ocorrˆ encia de v´ ertices de Voronoi impr´ oprios, ou seja, v´ ertices que pertecem a mais de duas fronteiras da c´ elula V C G (v). Na verdade, quanto menor a rela¸c˜ ao entre o raio dos discos que geraram a cobertura de Voronoi e as dimens˜ oes dos voxels, maiores s˜ ao as chances de ocorrˆ encia de v´ ertices de Voronoi impr´ oprios. Quando ocorrem tais v´ ertices, h´ a ambiguidades na triangula¸c˜ ao que deve ser gerada entre as c´ elulas (figura 5.14a). Nestes casos, encontrar a c´ elula V prox , a partir de C atual e V atual , requer maiores cuidados. ´ E que quando ocorrem v´ ertices de Voronoi impr´ oprios, podem existir diversas c´ elulas vizinhas a C atual e V atual ao mesmo tempo, mesmo considerando que a busca de V prox ´ e feita apenas no sentido anti-hor´ ario. Este conjunto de c´ elulas posicionadas ap´ os V atual (no sentido anti-hor´ ario) e vizinhas de C atual e V atual simultanemente ser´ a referenciado como P rox. A figura 5.14b mostra um exemplo, onde P rox = {V 1 , V 2 , V 3 }.

PUC-Rio - Certificação Digital Nº 9816117/CA

(20)

Figura 5.14: a)Ambiguidade na triangula¸c˜ ao b)Poss´ıveis V prox : V 1 , V 2 e V 3 . Para escolher corretamente V prox , as c´ elulas do conjunto P rox devem ser ordenadas e V prox ser´ a tomada como a c´ elula de P rox mais pr´ oxima a V atual . Para decidir a melhor forma de ordenar os elementos do conjunto P rox, deve-se levar em conta a dimens˜ ao das c´ elulas (rela¸c˜ ao entre o raio do disco correspondente e o tamanho dos voxels) e as variadas disposi¸c˜ oes dos c-v´ ertices vizinhos no grafo de conectividade. Por exemplo, a ordena¸c˜ ao pode ser feita projetando-se os centros das c´ elulas no plano tangente ao centro de C atual . Esta forma de ordena¸c˜ ao funciona bem se a regi˜ ao da iso-superf´ıcie contendo os centros das c´ elulas se aproximar localmente ao plano m´ edio formado pelos centros. Esta aproxima¸c˜ ao acontece quando os raios dos discos n˜ ao s˜ ao muito grandes em rela¸c˜ ao ` as dimens˜ oes dos voxels. Por´ em, quando as c´ elulas s˜ ao grandes (discos com raios grandes em rela¸c˜ ao ` as dimens˜ oes dos voxels), dependendo da distribui¸c˜ ao espacial dos centros, a regi˜ ao da iso-superf´ıcie que abrange localmente os centros n˜ ao se aproxima de um plano m´ edio (figura 5.13c) os centros podem ser projetados erroneamente (figura 5.11a). Em compensa¸c˜ ao, se as c´ elulas s˜ ao grandes, certamente a pr´ oxima c´ elula V prox pode ser tomada como o elemento de P rox que contiver a maior fronteira com a c´ elula V atual . Na figura 5.14b a c´ elula V 3 ´ e a que possui a maior fronteira com a c´ elula V atual . Esta heur´ıstica da maior fronteira n˜ ao ´ e garantida se as c´ elulas forem pequenas, devido ao pequeno n´ umero de c-v´ ertices contidos no disco (e na c´ elula) e ` a diversidade da disposi¸c˜ ao dos v´ ertices vizinhos.

Para melhor especificar o que se trata de uma c´ elula grande ou pequena, faz-se necess´ ario olhar para a rela¸c˜ ao entre os raios dos discos e as dimens˜ oes dx, dy, dz dos voxels que comp˜ oem o volume. Seja r o raio do disco equivalente ` a c´ elula atual C atual e seja dim a dimens˜ ao do voxel (maior dimens˜ ao ou m´ edia das dimens˜ oes, por exemplo). A c´ elula C atual ´ e

PUC-Rio - Certificação Digital Nº 9816117/CA

(21)

considerada grande se r/dim ≥ σ e ´ e considerada pequena se r/dim < σ.

Nos testes realizados, os resultados da ordena¸c˜ ao ( e triangula¸c˜ ao em geral) mostraram-se bastante satisfat´ orios com σ = 2.5. O resultado limite na diminui¸c˜ ao excessiva dos raios ´ e que cada c-v´ ertice do grafo de conectividade seria um disco contendo unicamente seu centro.

Tratamento de Buracos na Superf´ıcie

A se¸c˜ ao anterior mostrou que cada triˆ angulo gerado em volta da c´ elula C atual ´ e formado pelos centros das c´ elulas C atual , V atual e V prox . A escolha de V prox requer que esta seja simultanemante vizinha de C atual e de V atual . Por´ em esta condi¸c˜ ao n˜ ao ´ e suficiente para gerar a triangula¸c˜ ao corretamente.

A figura 5.15 mostra as trˆ es c´ elulas C atual , V atual e V prox , nestas condi¸c˜ oes, gerando triˆ angulos de maneira errada. Este problema acontece porque, al´ em da condi¸c˜ ao acima, ´ e necess´ ario que exista algum v´ ertice de Voronoi v ∈ C atual de modo que v ∈ F ront(C atual , V atual ) e v ∈ F ront(C atual , V prox ).

Se V prox ´ e vizinha de C atual e de V atual , mas n˜ ao existe um v´ ertice de Voronoi com a propriedade acima, significa que o triˆ angulo n˜ ao existe, ou seja, h´ a um buraco entre os centro das c´ elulas C atual , V atual , V prox .

Figura 5.15: O triˆ angulo marcado com X n˜ ao pode ser gerado.

PUC-Rio - Certificação Digital Nº 9816117/CA

Referências

Documentos relacionados

Art. O cadastramento no curso de graduação é obrigatório e somente permitido a candidatos classificados, portadores de escolaridade completa, em nível de Ensino

É evidente que um maior crescimento econômico, principalmente em municípios pobres da Região Metropolitana, é algo benéfico a curto e médio prazo; entretanto, a

Utilize apenas materiais e recipientes adequados para micro-ondas quando utilizar a função de micro-ondas!. Utilize a tabela em baixo

Diante dos assuntos que envolvem o planejamento das cidades encontram-se os equipamentos urbanos, que segundo Manfio (2015), são bens públicos e privados destinados a

A conquista do gerenciamento do PSQ (Programa Setorial de Qualidade) pela Afeaço será um dos principais temas do 5º Encontro Nacional de Fabricantes de Esquadrias de Aço, que

Nomes como Ingetraut Dahlberg, Birger Hjorland, Richard Smiraglia, Rafael Capurro, Renón Rojas (entre outros), trouxeram relevantes contribuições para o campo.

Para tanto, o presente estudo foi realizado na biblioteca da UTFPR (Universidade Tecnológica Federal do Paraná), campus de Campo Mourão, a fim de verificar a qualidade

Tabela 5 – Atividades desenvolvidas na área de medicina veterinária preventiva durante o Estágio Curricular Supervisionado em Medicina Veterinária empresa