SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Geometria Computacional - Winged Edge
Michel Alves dos Santos ∗
Outubro de 2011
Resumo
O uso de estruturas de dados avançadas para
representação de objetos poligonais é impor-
tante em muitos casos, por exemplo: durante a
simplificação da malha poligonal de um modelo
tridimensional (figura 3). É necessário o conhe-
cimento das adjacências entre os componentes
da malha, como faces e vértices. Tais estruturas
são conhecidas como boundary representations
(“representações de bordas”) ou simplesmente
b-reps, que armazenam os dados de um objeto
poligonal (vértices, arestas e faces), além de in-
formações adicionais sobre adjacências (Glass-
ner, 1991). Neste pequeno artigo iremos falar
sobre a estrutura de dados Winged-Edge pro-
posta por (Baumgart, 1975) para representação
de modelos poligonais e exibir alguns trechos al-
gorítmicos relativos a consultas que podem ser
realizadas nessa estrutura com o intuito de des-
cobrir relações de adjacência e incidência envol-
vendo vértices, arestas e faces. As consultas se-
rão apresentadas em formato de pseudo-código.
1 Introdução
Uma das estruturas de dados baseada em
aresta é a Winged-Edge, introduzida por (Baum-
gart, 1975; Hanks, 2005). Esta estrutura associa
a cada aresta identificadores das arestas imedi-
atamente anterior e posterior. Para cada sen-
tido da aresta temos, portanto, uma aresta an-
terior e posterior, ou seja, anterior horária (pcw
ou egde-head-right), posterior horária (ncw ou
egde-tail-right), anterior anti-horária (pccw ou
egde-tail-left) e posterior anti-horária (nccw ou
egde-head-left). As relações de adjacência e in-
cidência podem ser observadas nas figuras 1, 2,
4, 5 e 6.
∗Bacharelando em Ciência da Computação, Univer-
sidade Federal do Estado de Alagoas (UFAL). E-mail:
michel.mas@gmail.com. Disciplina: Geometria Compu-
tacional. Docente Responsável: Thales Vieira.
Figura 1: Visualização da estrutura de dados
Winged-Egde. Observe que existe uma orien-
tação entre os vértices inicial e final da aresta
e que esta mesma ainda mantêm apontadores
para as arestas posteriores e anteriores, ocor-
rendo o mesmo com as faces adjacentes. A face
denotada pelo apontador face_right possui sen-
tido horário de navegação em relação a orienta-
ção v0v1 enquanto a face face_left possui sen-
tido anti-horário.
Figura 2: Visualização da estrutura de dados
Winged-Egde em relação a um polígono. Ob-
serve como a estrutura e sua semântica de ori-
entação facilitam a navegação em relação a dis-
posição de elementos: vértices, arestas e faces.
1
Explorando esta representação das arestas,
as faces incluem somente o identificador de
uma aresta arbitrária e sua orientação na face.
Partindo-se desta aresta, todas as demais ares-
tas da face podem ser acessadas utilizando os
identificadores de aresta anterior ou posterior.
Uma variação desta estrutura adiciona os iden-
tificadores das faces incidentes nos dois sentidos
(Farin et al., 2003).
A estrutura de dados Winged-Egde é um po-
deroso mecanismo para manipulação de mode-
los poligonais, onde a idéia básica é baseada em
uma aresta e seus polígonos adjacentes. O nome
dessa estrutura é proveniente do corpo de uma
borboleta, imaginando os dois polígonos como
suas asas e a aresta como o seu corpo, separando
suas asas.
2 Estrutura
Uma listagem em pseudo-código da estrutura
Winged-Edge pode ser visualizada logo abaixo.
Podemos observar que o receptáculo que repre-
senta uma aresta através da abordagem Winged-
Edge armazena oito apontadores: dois para os
vértices inicial e final (tail e head), dois para as
faces incidentes da esquerda e da direita (left e
right) e quatro para as arestas adjacentes.
/∗ Data s t r u c t u r e − Vertex ∗/
c l a s s WE_Vertex
{
WE_Edge ∗ incident_edge ;
WE_VertexDataObject data ;
}
/∗ Data s t r u c t u r e − Edge∗/
c l a s s WE_Edge
{
// V e r t i c e s
WE_Vertex ∗ v e r t e x _ t a i l ;
WE_Vertex ∗ vertex_head ;
// Faces
WE_Face ∗ f a c e _ l e f t , ∗ f a c e _ r i g h t ;
// Edges
WE_Edge ∗ egde_head_left ;
WE_Edge ∗ egde_head_right ;
WE_Edge ∗ e g d e _ t a i l _ l e f t ;
WE_Edge ∗ e g d e _ t a i l _ r i g h t ;
// A data
WE_EdgeDataObject data ;
}
/∗ Data s t r u c t u r e − Face ∗/
c l a s s WE_Face
{
WE_Edge ∗ incident_edge ;
WE_FaceDataObject data ;
}
O receptáculo que representa vértices arma-
zena apenas um apontador para a aresta no qual
o mesmo incide. O receptáculo que representa
uma face armazena, da mesma maneira, ape-
nas um apontador para uma aresta arbitrária
na qual a face incide.
3 Consultas Suportadas
A escolha de uma estrutura de dados é deter-
minada pelo conjunto de operações elementares
que são suportadas eficientemente. A estrutura
Winged-Edge possui um conjunto de operações
básicas decorrentes de sua prototipação e um
conjunto de operações extendidas de baixa com-
plexidade. Alguns exemplos de consulta podem
ser visualizados logo abaixo:
• (FV) Todos os vértices de uma face;
• (EV) Vértices de uma aresta (extremos);
• (VF) Todas as faces que compartilham um
vértice;
• (EF) Todas as faces que compartilham uma
aresta;
• (FE) Todas as arestas de uma face;
• (VE) Todas as arestas que compartilham
um vértice;
Para a estrutura Winged-Edge as operações EV
e EF são consideradas básicas ou trivias (Nepe-
rud et al., 2007).
3.1 Consultas Básicas
Como dito antes, a estrutura Winged-Edge
possui um conjunto de operações básicas decor-
rentes de sua prototipação. Algumas dessas ope-
rações são listadas logo abaixo:
• Dado um vértice, retornar a aresta imedi-
tamente incidente ao vértice;
• Dada uma aresta, retornar os vértices de
suas extremidades (EV);
• Dada uma aresta, retornar as faces que o
compartilham;
• Dada uma aresta, retornar as arestas adja-
centes;
• Dada uma face, retornar a aresta imediata-
mente incidente.
2
/∗ I n c i d e n t Edge∗/
WE_Edge E = v−>incident_edge ;
/∗ Extreme V e r t i c e s ∗/
WE_Vertex t a i l = e−>v e r t e x _ t a i l ;
WE_Vertex head = e−>vertex_head ;
/∗ A l l f a c e s s h a r i n g an edge ∗/
WE_Face l e f t = e−>f a c e _ l e f t ;
WE_Face r i g h t = e−>f a c e _ r i g h t ;
// Adjacent Edges
WE_Edge h l = e−>egde_head_left ;
WE_Edge hr = e−>egde_head_right ;
WE_Edge t l = e−>e g d e _ t a i l _ l e f t ;
WE_Edge t r = e−>e g d e _ t a i l _ r i g h t ;
// I n c i d e n t Edge
WE_Edge E = f −>incident_edge ;
3.2 Consultas Extendidas
Como dito antes, a estrutura Winged-Edge
possui um conjunto de operações extendidas de
baixa complexidade. Alguns exemplos são apre-
sentados a seguir:
• Dada uma face retornar todas as arestas;
/∗ A l l edges o f a f a c e ∗/
WE_Edge_List FE (WE_Face f )
{
WE_Edge_List l i s t ;
WE_Edge e0 = f −>incident_edge ;
WE_Edge e = e0 ;
do
{
l i s t . put ( e ) ;
i f ( e−>f a c e _ l e f t == f )
{
e = e−>egde_head_left ;
}
e l s e
{
e = e−>e g d e _ t a i l _ r i g h t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
As operações FV e VF são similares.
• Dado um vértice retornar todas as arestas
que o compartilham;
/∗ A l l edges s h a r i n g a v e r t e x ∗/
WE_Edge_List VE (WE_Vertex v )
{
WE_Edge_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
do
{
l i s t . put ( e ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
}
e l s e
{
e = e−>e g d e _ t a i l _ l e f t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado um vértice retornar todas as faces in-
cidentes;
WE_Face_List VFL (WE_Vertex v )
{
WE_Face_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
WE_Face f = e−>f a c e _ l e f t ;
do
{
l i s t . put ( f ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
f = e−>f a c e _ l e f t ;
}
e l s e
{
e = edge−>e g d e _ t a i l _ l e f t ;
f = e−>f a c e _ r i g h t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado um vértice retornar todos os demais
vértices vizinhos;
WE_Vertex_List VVL (WE_Vertex v )
{
WE_Vertex_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
WE_Vertex v = e−>vertex_head ;
do
{
l i s t . put ( v ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
v = e−>vertex_head ;
}
e l s e
{
e = edge−>e g d e _ t a i l _ l e f t ;
v = e−>v e r t e x _ t a i l ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado uma aresta retornar todos as demais
arestas vizinhas;
WE_Edge_List EEL (WE_Edge E)
{
WE_Edge_List l 1 = VEL(E−> v e r t e x _ t a i l ) ;
WE_Edge_List l 2 = VEL(E−>vertex_head ) ;
3
// Remove edge E from the l i s t s
l 1 . remove (E) ;
l 2 . remove (E) ;
// Combine l i s t s
r e t u r n l 1 + l 2 ;
}
• Dada uma face retornar as demais faces in-
cidentes;
WE_Face_List FFL (WE_Face F)
{
WE_Edge_List l 1 = FE(F) ;
WE_Face_List l i s t ;
WE_Edge e ;
f o r each ( e i n l 1 )
{
i f ( e−>f a c e _ l e f t == F)
{
l i s t . put ( e−>f a c e _ r i g h t ) ;
}
e l s e
{
l i s t . put ( e−>f a c e _ l e f t ) ;
}
}
r e t u r n l i s t ;
}
• Calcular a K-ésima vizinhança estrelada,
dado K e um vértice;
/∗ KStarryNeighborhood − Neighbourhood s t a r ∗/
//K − s i z e o f neighborhood
// v l − v e r t e x l i s t with one v e r t e x i n i t i a l l y
// b l − l i s t t h a t c h e c k s i f v e r t e x l a b e l e d
WE_Vertex_List KSN( I n t K,
WE_Vertex_List vl ,
B o o l L i s t& b l )
{
i f (K == 1 )
{
r e t u r n Neighbors ( vl , b l ) ;
}
e l s e
{
r e t u r n Neighbors (KSN(K−1 , vl , b l ) , b l ) ;
}
}
/∗ Returns l i s t o f a l l n e i g h b o r s ∗/
WE_Vertex_List Neighbors ( WE_Vertex_List vl ,
B o o l L i s t& b l )
{
WE_Vertex v ;
WE_Vertex_List l i s t
f o r each ( v i n v l )
{
l i s t = l i s t + VVL( v , b l ) ;
}
r e t u r n l i s t ;
}
/∗ Returns a l l marked n e i g h b o r s ∗/
WE_Vertex_List VVL( WE_Vertex v , B o o l L i s t& b l )
{
WE_Vertex_List l i s t ;
WE_Edge e0 = v−>i n c i d e n t _ e d g e ;
WE_Edge e = e0 ;
WE_Vertex v = e−>vertex_head ;
do
{
// c h e c k s i f t he v e r t e x i s marked
i f ( ! b l [ v−>i d ] )
{
l i s t . put ( v ) ;
b l [ v−>i d ] = t r u e ;
}
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
v = e−>vertex_head ;
}
e l s e
{
e = edge −> e g d e _ t a i l _ l e f t ;
v = e−> v e r t e x _ t a i l ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
4 Conclusões
A estrutura de dados Winged-Edge foi intro-
duzida por (Baumgart, 1975) para simplificar
a manipulação de modelos poligonais pois man-
têm tanto informação geométrica quanto topoló-
gica (figura 6), o que facilita ainda mais o trata-
mento de alguns modelos. Além disso Winged-
Edge possui um conjunto de operações triviais
que facilitam a execução de consultas de adja-
cência e incidência sem proporcionar demasiada
sobrecarga.
A estrutura de dados Winged-Edge permite
a passagem rápida entre faces, arestas e vér-
tices, devido à sua estrutura explicitamente li-
gada em rede (figura 4). Esta forma de especifi-
car uma grade desestruturada está em contraste
com especificações mais simples de malhas de
polígonos, tais como nó e lista de elementos, ou
a conectividade implícita de uma grade regular
(de Berg et al., 2008).
Figura 3: A estrutura Winged-Egde é uma re-
presentação de dados utilizada para descrever
modelos poligonais em computação gráfica. Ex-
plicitamente descreve a geometria e a topologia
de faces, arestas e vértices quando três ou mais
superfícies se reúnem e se encontram em uma
aresta comum.
O principal incômodo da estrutura Winged-
Egde é sua grande demanda de armazenamento
o que ocasiona maior complexidade devido à
manutenção dos vários índices pertencentes as
listas de vértices, arestas e faces. Um exemplo
dessa demanda pode ser observado através da
figura 5.
4
Figura 4: A estrutura Winged-Egde permite a pas-
sagem rápida entre faces, arestas e vértices, devido
à estrutura explicitamente ligada em rede. Esta re-
presentação é amplamente utilizada em programas
de modelagem para fornecer maior flexibilidade na
alteração dinâmica da geometria da malha, com isso
operações de divisão e mesclagem podem ser execu-
tadas rapidamente (Foley, 1996).
Referências
Baumgart, B. G. (1975), ‘Winged-edge polyhe-
dron representation for computer vision’, Na-
tional Computer Conference.
Beall, M. W. & Shephard, M. S. (1997), ‘A ge-
neral topology-based mesh data structures’,
International Journal for Numerical Methods
in Engineering 40(9), 1573–1596.
Braid, I., Hillyard, R. & Stroud, I. (1980),
‘Stepwise construction of polyhedra in geo-
metric modelling’, Mathematical Methods in
Computer Graphics and Design pp. 123–141.
de Berg, M., Cheong, O. & van Kreveld, M.
(2008), Computational geometry: algorithms
and applications, 3 ed., Springer.
Farin, G., Hamann, B. & Hagen, H. (2003), Hie-
rarchical and geometrical methods in scientific
visualization, Mathematics and visualization,
Springer.
Fischer, R. (1991), Genesys - um sistema hí-
brido de modelagem de sólidos, Master’s the-
sis, Departamento de Informática - Pontifícia
Universidade Católica - PUC-Rio - Rio de Ja-
neiro.
Foley, J. D. (1996), Computer graphics: princi-
ples and practice, 2 ed., Addison-Wesley Pro-
fessional.
Glassner, A. S. (1991), ‘Maintaining winged-
edge models’, Graphics Gems II - Academic
Press 2, 191–201.
Gois, J. & Piteri, M. (2002), ‘Geração automá-
tica de malhas de elementos finitos e a estru-
tura de dados winged-edge modificada’, Ten-
dências em Matemática Aplicada e Computa-
cional 3(1), 121–130.
Hanks, B. W. (2005), Proceedings of the 14th
International Meshing Roundtable, Springer.
Leondes, C. T. (2002), Database and data com-
munication network systems: techniques and
applications, Vol. 2, Elsevier Science - Acade-
mic Press.
Neperud, B., Lowther, J. & Shene, C.-K. (2007),
‘Visualizing and animating the winged-edge
data structure’, Elsevier.
O’Rourke, J. (1998), Computational geometry in
C, 2 ed., Cambridge University Press.
Piteri, M. (1999), Geração Automática de Ma-
lhas Hierárquico-Adaptativas em Domínios
Bidimensionais e Tridimensionais, PhD the-
sis, Universidade Técnica de Lisboa.
Piteri, M. & Almeida, J. (1995), ‘Hierarchical 2d
mesh generation using topological data struc-
tures’, Education, Practice and Promotion of
Computational Methods in Engineering Using
Small Computers 2, 981–986.
Vince, J. A. (2000), Essential computer anima-
tion fast: how to understand the techniques
and potential of computer animation, Sprin-
ger.
Conteúdo
1 Introdução 1
2 Estrutura 2
3 Consultas Suportadas 2
3.1 Consultas Básicas . . . . . . . . . . . 2
3.2 Consultas Extendidas . . . . . . . . 3
4 Conclusões 4
Referências 5
5
Figura 5: A principal desvantagem da estrutura Winged-Egde é a sua grande demanda de armazenamento
o que acarreta maior complexidade devido à manutenção de muitos índices. Uma boa discussão das
questões de implementação da estrutura Winged-Egde para malhas pode ser encontrada no livro Graphics
Gems II.
Figura 6: Uma estrutura de dados topológica representa a completa topologia de um objeto em estudo
(Gois & Piteri, 2002; Beall & Shephard, 1997; Piteri & Almeida, 1995; Piteri, 1999). Uma característica
fundamental associada a essas estruturas é que qualquer informação relativa à topologia pode ser obtida
em tempo constante ou proporcional ao número de entidades envolvidas, independentemente da dimensão
do problema, quer a malha possua 1 milhão de elementos triangulares ou 100 mil elementos, já que estas
informações são de natureza local. A estrutura de dados topológica Winged-Egde concentra a maior parte
de suas informações na entidade aresta (O’Rourke, 1998). Isto acontece em função do fato de que em
qualquer modelo poliedral manifold, uma aresta pertence a exatamente duas faces, ou seja, este número
é invariante (Baumgart, 1975). Da forma como foi concebida originariamente, esta estrutura não permite
representar diretamente uma face com mais de uma componente conexa, ou seja, buracos em seu interior
(Vince, 2000). Com a introdução da entidade ciclo (Braid et al., 1980), pode-se representar faces com mais
de uma componente conexa, e assim, a estrutura passa a ser referenciada como winged-edged modificada
(Fischer, 1991; Leondes, 2002).
6

Contenu connexe

Tendances

DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Projeto de pesquisa exemplo 2013 2
Projeto de pesquisa   exemplo 2013 2Projeto de pesquisa   exemplo 2013 2
Projeto de pesquisa exemplo 2013 2Unir-Metodologia
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgeLorran Pegoretti
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro Paula Souza
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Pacc UAB
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulárioCentro Paula Souza
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Flávio Freitas
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 

Tendances (20)

Html básico 4 tabelas
Html básico 4   tabelasHtml básico 4   tabelas
Html básico 4 tabelas
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Projeto de pesquisa exemplo 2013 2
Projeto de pesquisa   exemplo 2013 2Projeto de pesquisa   exemplo 2013 2
Projeto de pesquisa exemplo 2013 2
 
Poo
PooPoo
Poo
 
Segurança Lógica de Redes
Segurança Lógica de RedesSegurança Lógica de Redes
Segurança Lógica de Redes
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e Bridge
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2Aula 3 - Algoritmos computacionais - parte 2
Aula 3 - Algoritmos computacionais - parte 2
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
 
Apresentação rest api
Apresentação rest apiApresentação rest api
Apresentação rest api
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 

Similaire à Winged-Edge Report

Alg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfAlg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfHurgelNeto
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosDelacyr Ferreira
 
Introducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresIntroducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresRodriguesAntonioNabo
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosssusera0fc94
 

Similaire à Winged-Edge Report (8)

Grafos.ppt
Grafos.pptGrafos.ppt
Grafos.ppt
 
Alg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfAlg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdf
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de Grafos
 
Introducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresIntroducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectores
 
Aula Grafos
Aula GrafosAula Grafos
Aula Grafos
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitos
 
Grafos_1.pptx
Grafos_1.pptxGrafos_1.pptx
Grafos_1.pptx
 
transformacao1.ppt
transformacao1.ppttransformacao1.ppt
transformacao1.ppt
 

Plus de Michel Alves

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseMichel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogMichel Alves
 

Plus de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Dernier

PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdfjacquescardosodias
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 

Dernier (20)

PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Conflitos entre: ISRAEL E PALESTINA.pdf
Conflitos entre:  ISRAEL E PALESTINA.pdfConflitos entre:  ISRAEL E PALESTINA.pdf
Conflitos entre: ISRAEL E PALESTINA.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 

Winged-Edge Report

  • 1. Geometria Computacional - Winged Edge Michel Alves dos Santos ∗ Outubro de 2011 Resumo O uso de estruturas de dados avançadas para representação de objetos poligonais é impor- tante em muitos casos, por exemplo: durante a simplificação da malha poligonal de um modelo tridimensional (figura 3). É necessário o conhe- cimento das adjacências entre os componentes da malha, como faces e vértices. Tais estruturas são conhecidas como boundary representations (“representações de bordas”) ou simplesmente b-reps, que armazenam os dados de um objeto poligonal (vértices, arestas e faces), além de in- formações adicionais sobre adjacências (Glass- ner, 1991). Neste pequeno artigo iremos falar sobre a estrutura de dados Winged-Edge pro- posta por (Baumgart, 1975) para representação de modelos poligonais e exibir alguns trechos al- gorítmicos relativos a consultas que podem ser realizadas nessa estrutura com o intuito de des- cobrir relações de adjacência e incidência envol- vendo vértices, arestas e faces. As consultas se- rão apresentadas em formato de pseudo-código. 1 Introdução Uma das estruturas de dados baseada em aresta é a Winged-Edge, introduzida por (Baum- gart, 1975; Hanks, 2005). Esta estrutura associa a cada aresta identificadores das arestas imedi- atamente anterior e posterior. Para cada sen- tido da aresta temos, portanto, uma aresta an- terior e posterior, ou seja, anterior horária (pcw ou egde-head-right), posterior horária (ncw ou egde-tail-right), anterior anti-horária (pccw ou egde-tail-left) e posterior anti-horária (nccw ou egde-head-left). As relações de adjacência e in- cidência podem ser observadas nas figuras 1, 2, 4, 5 e 6. ∗Bacharelando em Ciência da Computação, Univer- sidade Federal do Estado de Alagoas (UFAL). E-mail: michel.mas@gmail.com. Disciplina: Geometria Compu- tacional. Docente Responsável: Thales Vieira. Figura 1: Visualização da estrutura de dados Winged-Egde. Observe que existe uma orien- tação entre os vértices inicial e final da aresta e que esta mesma ainda mantêm apontadores para as arestas posteriores e anteriores, ocor- rendo o mesmo com as faces adjacentes. A face denotada pelo apontador face_right possui sen- tido horário de navegação em relação a orienta- ção v0v1 enquanto a face face_left possui sen- tido anti-horário. Figura 2: Visualização da estrutura de dados Winged-Egde em relação a um polígono. Ob- serve como a estrutura e sua semântica de ori- entação facilitam a navegação em relação a dis- posição de elementos: vértices, arestas e faces. 1
  • 2. Explorando esta representação das arestas, as faces incluem somente o identificador de uma aresta arbitrária e sua orientação na face. Partindo-se desta aresta, todas as demais ares- tas da face podem ser acessadas utilizando os identificadores de aresta anterior ou posterior. Uma variação desta estrutura adiciona os iden- tificadores das faces incidentes nos dois sentidos (Farin et al., 2003). A estrutura de dados Winged-Egde é um po- deroso mecanismo para manipulação de mode- los poligonais, onde a idéia básica é baseada em uma aresta e seus polígonos adjacentes. O nome dessa estrutura é proveniente do corpo de uma borboleta, imaginando os dois polígonos como suas asas e a aresta como o seu corpo, separando suas asas. 2 Estrutura Uma listagem em pseudo-código da estrutura Winged-Edge pode ser visualizada logo abaixo. Podemos observar que o receptáculo que repre- senta uma aresta através da abordagem Winged- Edge armazena oito apontadores: dois para os vértices inicial e final (tail e head), dois para as faces incidentes da esquerda e da direita (left e right) e quatro para as arestas adjacentes. /∗ Data s t r u c t u r e − Vertex ∗/ c l a s s WE_Vertex { WE_Edge ∗ incident_edge ; WE_VertexDataObject data ; } /∗ Data s t r u c t u r e − Edge∗/ c l a s s WE_Edge { // V e r t i c e s WE_Vertex ∗ v e r t e x _ t a i l ; WE_Vertex ∗ vertex_head ; // Faces WE_Face ∗ f a c e _ l e f t , ∗ f a c e _ r i g h t ; // Edges WE_Edge ∗ egde_head_left ; WE_Edge ∗ egde_head_right ; WE_Edge ∗ e g d e _ t a i l _ l e f t ; WE_Edge ∗ e g d e _ t a i l _ r i g h t ; // A data WE_EdgeDataObject data ; } /∗ Data s t r u c t u r e − Face ∗/ c l a s s WE_Face { WE_Edge ∗ incident_edge ; WE_FaceDataObject data ; } O receptáculo que representa vértices arma- zena apenas um apontador para a aresta no qual o mesmo incide. O receptáculo que representa uma face armazena, da mesma maneira, ape- nas um apontador para uma aresta arbitrária na qual a face incide. 3 Consultas Suportadas A escolha de uma estrutura de dados é deter- minada pelo conjunto de operações elementares que são suportadas eficientemente. A estrutura Winged-Edge possui um conjunto de operações básicas decorrentes de sua prototipação e um conjunto de operações extendidas de baixa com- plexidade. Alguns exemplos de consulta podem ser visualizados logo abaixo: • (FV) Todos os vértices de uma face; • (EV) Vértices de uma aresta (extremos); • (VF) Todas as faces que compartilham um vértice; • (EF) Todas as faces que compartilham uma aresta; • (FE) Todas as arestas de uma face; • (VE) Todas as arestas que compartilham um vértice; Para a estrutura Winged-Edge as operações EV e EF são consideradas básicas ou trivias (Nepe- rud et al., 2007). 3.1 Consultas Básicas Como dito antes, a estrutura Winged-Edge possui um conjunto de operações básicas decor- rentes de sua prototipação. Algumas dessas ope- rações são listadas logo abaixo: • Dado um vértice, retornar a aresta imedi- tamente incidente ao vértice; • Dada uma aresta, retornar os vértices de suas extremidades (EV); • Dada uma aresta, retornar as faces que o compartilham; • Dada uma aresta, retornar as arestas adja- centes; • Dada uma face, retornar a aresta imediata- mente incidente. 2
  • 3. /∗ I n c i d e n t Edge∗/ WE_Edge E = v−>incident_edge ; /∗ Extreme V e r t i c e s ∗/ WE_Vertex t a i l = e−>v e r t e x _ t a i l ; WE_Vertex head = e−>vertex_head ; /∗ A l l f a c e s s h a r i n g an edge ∗/ WE_Face l e f t = e−>f a c e _ l e f t ; WE_Face r i g h t = e−>f a c e _ r i g h t ; // Adjacent Edges WE_Edge h l = e−>egde_head_left ; WE_Edge hr = e−>egde_head_right ; WE_Edge t l = e−>e g d e _ t a i l _ l e f t ; WE_Edge t r = e−>e g d e _ t a i l _ r i g h t ; // I n c i d e n t Edge WE_Edge E = f −>incident_edge ; 3.2 Consultas Extendidas Como dito antes, a estrutura Winged-Edge possui um conjunto de operações extendidas de baixa complexidade. Alguns exemplos são apre- sentados a seguir: • Dada uma face retornar todas as arestas; /∗ A l l edges o f a f a c e ∗/ WE_Edge_List FE (WE_Face f ) { WE_Edge_List l i s t ; WE_Edge e0 = f −>incident_edge ; WE_Edge e = e0 ; do { l i s t . put ( e ) ; i f ( e−>f a c e _ l e f t == f ) { e = e−>egde_head_left ; } e l s e { e = e−>e g d e _ t a i l _ r i g h t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } As operações FV e VF são similares. • Dado um vértice retornar todas as arestas que o compartilham; /∗ A l l edges s h a r i n g a v e r t e x ∗/ WE_Edge_List VE (WE_Vertex v ) { WE_Edge_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; do { l i s t . put ( e ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; } e l s e { e = e−>e g d e _ t a i l _ l e f t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado um vértice retornar todas as faces in- cidentes; WE_Face_List VFL (WE_Vertex v ) { WE_Face_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; WE_Face f = e−>f a c e _ l e f t ; do { l i s t . put ( f ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; f = e−>f a c e _ l e f t ; } e l s e { e = edge−>e g d e _ t a i l _ l e f t ; f = e−>f a c e _ r i g h t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado um vértice retornar todos os demais vértices vizinhos; WE_Vertex_List VVL (WE_Vertex v ) { WE_Vertex_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; WE_Vertex v = e−>vertex_head ; do { l i s t . put ( v ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; v = e−>vertex_head ; } e l s e { e = edge−>e g d e _ t a i l _ l e f t ; v = e−>v e r t e x _ t a i l ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado uma aresta retornar todos as demais arestas vizinhas; WE_Edge_List EEL (WE_Edge E) { WE_Edge_List l 1 = VEL(E−> v e r t e x _ t a i l ) ; WE_Edge_List l 2 = VEL(E−>vertex_head ) ; 3
  • 4. // Remove edge E from the l i s t s l 1 . remove (E) ; l 2 . remove (E) ; // Combine l i s t s r e t u r n l 1 + l 2 ; } • Dada uma face retornar as demais faces in- cidentes; WE_Face_List FFL (WE_Face F) { WE_Edge_List l 1 = FE(F) ; WE_Face_List l i s t ; WE_Edge e ; f o r each ( e i n l 1 ) { i f ( e−>f a c e _ l e f t == F) { l i s t . put ( e−>f a c e _ r i g h t ) ; } e l s e { l i s t . put ( e−>f a c e _ l e f t ) ; } } r e t u r n l i s t ; } • Calcular a K-ésima vizinhança estrelada, dado K e um vértice; /∗ KStarryNeighborhood − Neighbourhood s t a r ∗/ //K − s i z e o f neighborhood // v l − v e r t e x l i s t with one v e r t e x i n i t i a l l y // b l − l i s t t h a t c h e c k s i f v e r t e x l a b e l e d WE_Vertex_List KSN( I n t K, WE_Vertex_List vl , B o o l L i s t& b l ) { i f (K == 1 ) { r e t u r n Neighbors ( vl , b l ) ; } e l s e { r e t u r n Neighbors (KSN(K−1 , vl , b l ) , b l ) ; } } /∗ Returns l i s t o f a l l n e i g h b o r s ∗/ WE_Vertex_List Neighbors ( WE_Vertex_List vl , B o o l L i s t& b l ) { WE_Vertex v ; WE_Vertex_List l i s t f o r each ( v i n v l ) { l i s t = l i s t + VVL( v , b l ) ; } r e t u r n l i s t ; } /∗ Returns a l l marked n e i g h b o r s ∗/ WE_Vertex_List VVL( WE_Vertex v , B o o l L i s t& b l ) { WE_Vertex_List l i s t ; WE_Edge e0 = v−>i n c i d e n t _ e d g e ; WE_Edge e = e0 ; WE_Vertex v = e−>vertex_head ; do { // c h e c k s i f t he v e r t e x i s marked i f ( ! b l [ v−>i d ] ) { l i s t . put ( v ) ; b l [ v−>i d ] = t r u e ; } i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; v = e−>vertex_head ; } e l s e { e = edge −> e g d e _ t a i l _ l e f t ; v = e−> v e r t e x _ t a i l ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } 4 Conclusões A estrutura de dados Winged-Edge foi intro- duzida por (Baumgart, 1975) para simplificar a manipulação de modelos poligonais pois man- têm tanto informação geométrica quanto topoló- gica (figura 6), o que facilita ainda mais o trata- mento de alguns modelos. Além disso Winged- Edge possui um conjunto de operações triviais que facilitam a execução de consultas de adja- cência e incidência sem proporcionar demasiada sobrecarga. A estrutura de dados Winged-Edge permite a passagem rápida entre faces, arestas e vér- tices, devido à sua estrutura explicitamente li- gada em rede (figura 4). Esta forma de especifi- car uma grade desestruturada está em contraste com especificações mais simples de malhas de polígonos, tais como nó e lista de elementos, ou a conectividade implícita de uma grade regular (de Berg et al., 2008). Figura 3: A estrutura Winged-Egde é uma re- presentação de dados utilizada para descrever modelos poligonais em computação gráfica. Ex- plicitamente descreve a geometria e a topologia de faces, arestas e vértices quando três ou mais superfícies se reúnem e se encontram em uma aresta comum. O principal incômodo da estrutura Winged- Egde é sua grande demanda de armazenamento o que ocasiona maior complexidade devido à manutenção dos vários índices pertencentes as listas de vértices, arestas e faces. Um exemplo dessa demanda pode ser observado através da figura 5. 4
  • 5. Figura 4: A estrutura Winged-Egde permite a pas- sagem rápida entre faces, arestas e vértices, devido à estrutura explicitamente ligada em rede. Esta re- presentação é amplamente utilizada em programas de modelagem para fornecer maior flexibilidade na alteração dinâmica da geometria da malha, com isso operações de divisão e mesclagem podem ser execu- tadas rapidamente (Foley, 1996). Referências Baumgart, B. G. (1975), ‘Winged-edge polyhe- dron representation for computer vision’, Na- tional Computer Conference. Beall, M. W. & Shephard, M. S. (1997), ‘A ge- neral topology-based mesh data structures’, International Journal for Numerical Methods in Engineering 40(9), 1573–1596. Braid, I., Hillyard, R. & Stroud, I. (1980), ‘Stepwise construction of polyhedra in geo- metric modelling’, Mathematical Methods in Computer Graphics and Design pp. 123–141. de Berg, M., Cheong, O. & van Kreveld, M. (2008), Computational geometry: algorithms and applications, 3 ed., Springer. Farin, G., Hamann, B. & Hagen, H. (2003), Hie- rarchical and geometrical methods in scientific visualization, Mathematics and visualization, Springer. Fischer, R. (1991), Genesys - um sistema hí- brido de modelagem de sólidos, Master’s the- sis, Departamento de Informática - Pontifícia Universidade Católica - PUC-Rio - Rio de Ja- neiro. Foley, J. D. (1996), Computer graphics: princi- ples and practice, 2 ed., Addison-Wesley Pro- fessional. Glassner, A. S. (1991), ‘Maintaining winged- edge models’, Graphics Gems II - Academic Press 2, 191–201. Gois, J. & Piteri, M. (2002), ‘Geração automá- tica de malhas de elementos finitos e a estru- tura de dados winged-edge modificada’, Ten- dências em Matemática Aplicada e Computa- cional 3(1), 121–130. Hanks, B. W. (2005), Proceedings of the 14th International Meshing Roundtable, Springer. Leondes, C. T. (2002), Database and data com- munication network systems: techniques and applications, Vol. 2, Elsevier Science - Acade- mic Press. Neperud, B., Lowther, J. & Shene, C.-K. (2007), ‘Visualizing and animating the winged-edge data structure’, Elsevier. O’Rourke, J. (1998), Computational geometry in C, 2 ed., Cambridge University Press. Piteri, M. (1999), Geração Automática de Ma- lhas Hierárquico-Adaptativas em Domínios Bidimensionais e Tridimensionais, PhD the- sis, Universidade Técnica de Lisboa. Piteri, M. & Almeida, J. (1995), ‘Hierarchical 2d mesh generation using topological data struc- tures’, Education, Practice and Promotion of Computational Methods in Engineering Using Small Computers 2, 981–986. Vince, J. A. (2000), Essential computer anima- tion fast: how to understand the techniques and potential of computer animation, Sprin- ger. Conteúdo 1 Introdução 1 2 Estrutura 2 3 Consultas Suportadas 2 3.1 Consultas Básicas . . . . . . . . . . . 2 3.2 Consultas Extendidas . . . . . . . . 3 4 Conclusões 4 Referências 5 5
  • 6. Figura 5: A principal desvantagem da estrutura Winged-Egde é a sua grande demanda de armazenamento o que acarreta maior complexidade devido à manutenção de muitos índices. Uma boa discussão das questões de implementação da estrutura Winged-Egde para malhas pode ser encontrada no livro Graphics Gems II. Figura 6: Uma estrutura de dados topológica representa a completa topologia de um objeto em estudo (Gois & Piteri, 2002; Beall & Shephard, 1997; Piteri & Almeida, 1995; Piteri, 1999). Uma característica fundamental associada a essas estruturas é que qualquer informação relativa à topologia pode ser obtida em tempo constante ou proporcional ao número de entidades envolvidas, independentemente da dimensão do problema, quer a malha possua 1 milhão de elementos triangulares ou 100 mil elementos, já que estas informações são de natureza local. A estrutura de dados topológica Winged-Egde concentra a maior parte de suas informações na entidade aresta (O’Rourke, 1998). Isto acontece em função do fato de que em qualquer modelo poliedral manifold, uma aresta pertence a exatamente duas faces, ou seja, este número é invariante (Baumgart, 1975). Da forma como foi concebida originariamente, esta estrutura não permite representar diretamente uma face com mais de uma componente conexa, ou seja, buracos em seu interior (Vince, 2000). Com a introdução da entidade ciclo (Braid et al., 1980), pode-se representar faces com mais de uma componente conexa, e assim, a estrutura passa a ser referenciada como winged-edged modificada (Fischer, 1991; Leondes, 2002). 6