• 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

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

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

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