Notas de Aula de
Um Curso de Modelagem de S´
olidos
em Computac
¸ ˜
ao Gr´
afica
Humberto Jos´
e Bortolossi
Universidade Federal Fluminense
VERS ˜AO 1.1 2 de fevereiro de 2017
Essas s˜ao anota¸c˜oes que fiz durante a disciplina de Modelagem de S´olidos no programa de Doutorado em Matem´atica da PUC-Rio em 1994.
Sum´
ario
1 Modelos de decomposi¸c˜ao 6
1.1 N´ıveis de abstra¸c˜ao em modelagem . . . 6
1.2 S´olidos construt´ıveis e n˜ao-construt´ıveis . . . 6
1.3 Propriedades de modelos de representa¸c˜ao . . . 7
1.4 Classifica¸c˜ao de modelos de s´olidos . . . 8
1.4.1 Modelos de decomposi¸c˜ao . . . 8
1.4.2 Modelos construtivos . . . 8
1.4.3 Modelos de contorno (boundary models) . . . . 8
1.5 Modelos de decomposi¸c˜ao . . . 8 1.5.1 Enumera¸c˜ao exaustiva . . . 8 1.5.2 Cell decompositions . . . 9 1.5.3 Octree representation . . . 10 2 Modelos construtivos 15 2.1 Modelos half-spaces . . . 15 2.1.1 Half-spaces . . . 15
2.1.2 Opera¸c˜oes booleanas . . . 16
2.1.3 Representa¸c˜ao de modelos half-spaces . . . 16
2.1.4 Propriedades dos modelos half-spaces . . . 17
2.2 Constructive Solid Geometry . . . 18
2.2.1 Representa¸c˜ao de modelos CSG . . . 18
2.2.2 Algoritmos para modelos CSG . . . 21
2.2.3 Propriedades de modelos CSG . . . 21
2.3 Classifica¸c˜oes de pertinˆencia . . . 22
2.3.1 Propaga¸c˜ao para baixo . . . 22
2.3.2 Propaga¸c˜ao para cima . . . 23
2.3.3 Vizinhan¸cas . . . 23
3 Modelos baseados em superf´ıcies 25 3.1 Variedades bidimensionais . . . 25
3.2 Limita¸c˜oes de modelos em variedades . . . 25
3.3 Modelos planos de variedades bidimensionais . . . 26
3.4 Defini¸c˜ao formal de modelos planos . . . 28
3.5 Modelos planos realiz´aveis . . . 30
3.5.2 Orientabilidade . . . 31
3.6 A caracter´ıstica de Euler . . . 32
3.6.1 Os n´umeros de Betti . . . 32
3.7 Superf´ıcies com bordo . . . 34
3.8 Dualidade . . . 35
3.9 Resumo . . . 36
4 Modelos de Contorno 37 4.1 Conceitos b´asicos . . . 37
4.2 Estrutura de dados em modelos de contorno . . . 38
4.2.1 Modelos de contorno baseados em pol´ıgonos . . . 40
4.2.2 Modelos de contorno baseados em v´ertices . . . 40
4.2.3 Modelos de contorno baseados em arestas . . . 41
4.2.4 Faces com v´arias curvas de bordo . . . 42
4.3 Validade de modelos de contorno . . . 45
4.4 Descri¸c˜ao de modelos de contorno . . . 46
4.4.1 Convers˜ao de modelos CSG . . . 47
4.4.2 Desenhos em dimens˜ao dois e meio . . . 48
4.4.3 Modifica¸c˜oes locais . . . 48
4.5 Algoritmos para modelos de contorno . . . 50
4.5.1 Visualiza¸c˜ao . . . 50
4.5.2 Propriedades integrais . . . 52
4.6 Propriedades de modelos de contorno . . . 53
5 Operadores de Euler 55 5.1 Manipula¸c˜ao de modelos planos . . . 55
5.1.1 Opera¸c˜oes topol´ogicas locais . . . 55
5.1.2 Opera¸c˜oes topol´ogicas globais . . . 57
5.1.3 Consistˆencia das opera¸c˜oes sobre modelos planos . . . 59
5.2 Manipula¸c˜ao de modelos de contorno . . . 60
5.2.1 Nota¸c˜oes e conven¸c˜oes . . . 61
5.2.2 Primitivas esquel´eticas: MVFS e KVFS . . . 61
5.2.3 Manipula¸c˜oes locais . . . 62
5.2.4 Manipula¸c˜oes globais: KFMRH, MFKRH . . . 64
5.3 Um exemplo dos operadores de Euler . . . 65
5.4 Propriedades dos operadores de Euler . . . 68
5.4.1 A f´ormula de Euler-Poincar´e revisitada . . . 68
5.4.2 Propriedades alg´ebricas dos operadores de Euler . . . 68
Lista de Figuras
1.1 S´olidos (a) construt´ıvel e (b) n˜ao-construt´ıvel. . . 7
1.2 Um modelo octree. . . 11
1.3 Esquema representativo para a decomposi¸c˜ao octree. . . 12
2.1 Modelo half-space de um cilindro finito. . . 17
2.2 Trˆes cole¸c˜oes de primitivas CSG. . . 20
2.3 Uma opera¸c˜ao booleana n˜ao regular. . . 21
2.4 Ambig¨uidade no caso “on-on”. . . 23
3.1 S´olidos cujas superf´ıcies n˜ao s˜ao variedades topol´ogicas. . . 27
3.2 Uma superf´ıcie cil´ındrica. . . 28
3.3 Outras superf´ıcies: (a) esfera, (b) toro e (c) faixa de M¨obius. . . 29
3.4 Modelos planos de uma pirˆamide. . . 30
3.5 A garrafa de Klein. . . 31
3.6 Modelos de um cubo. . . 33
3.7 Um modelo plano e seu dual. . . 35
4.1 Defini¸c˜ao de uma face. . . 38
4.2 Constituintes b´asicos de modelos de contorno. . . 39
4.3 Um objeto exemplo. . . 39
4.4 Um modelo de contorno baseado em v´ertices. . . 40
4.5 Um modelo de contorno baseado em arestas. . . 41
4.6 A estrutura de dados winged-edge. . . 43
4.7 A estrutura de dados winged-edge completa. . . 44
4.8 Objeto com faces n˜ao simples. . . 45
4.9 Modelos de contorno inv´alidos. . . 46
4.10 Um objeto com BR n˜ao conveniente. . . 47
4.11 Varredura de faces. . . 49
4.12 Opera¸c˜oes booleanas em perfis. . . 50
4.13 Modifica¸c˜oes locais em modelos de contorno. . . 51
5.1 A opera¸c˜ao de quebra de um v´ertice. . . 56
5.2 Soma conexa de dois modelos planos. . . 58
5.3 Soma conexa aplicada a uma ´unica componente. . . 58
5.4 O operador MVFS. . . 62
5.6 O operador MEF. . . 63
5.7 O operador KEMR. . . 64
5.8 Exemplo dos operadores de Euler. . . 66
Cap´ıtulo 1
Modelos de decomposi¸
c˜
ao
A modelagem de s´olidos ´e um ramo da modelagem geom´etrica cujo principal objetivo ´e a de manter a aplicabilidade geral de seus modelos. Ela insiste em criar somente representa¸c˜oes “completas” de objetos f´ısicos, isto ´e, representa¸c˜oes nas quais se ´e poss´ıvel responder a quest˜oes geom´etricas arbitr´arias de uma maneira algor´ıtmica.
1.1
N´ıveis de abstra¸
c˜
ao em modelagem
Podemos disting¨uir quatro diferentes n´ıveis de abstra¸c˜ao em modelagem:
(1) Modelo f´ısico: Neste n´ıvel descrevemos e caracterizamos objetos reais de nosso mundo tri-dimensional atrav´es de suas propriedades f´ısicas que, por suas vez, s˜ao percebidas atrav´es de nossos sentidos.
(2) Modelo matem´atico: A fim de termos alguma esperan¸ca de modelar objetos no computador,
devemos adotar uma idealiza¸c˜ao adequada dos objetos reais que estamos interessados em modelar. Para conseguir isto, utilizamos a linguagem matem´atica (teoria de conjuntos e topologia alg´ebrica) para descrever de maneira rigorosa os objetos de interesse.
(3) Modelo de representa¸c˜ao: Depois de definirmos de maneira rigorosa a classe de objetos
matem´aticos em que estamos interessados o passo seguinte ´e a de associar ao modelo ma-tem´atico uma representa¸c˜ao apropriada para manuseio em computador.
(4) Modelo de implementa¸c˜ao: Neste ´ultimo n´ıvel adaptamos o modelo de representa¸c˜ao de acordo com os recursos de implementa¸c˜ao dispon´ıveis (em geral, caracter´ısticas pr´oprias da linguagem escolhida, a utiliza¸c˜ao ou n˜ao de processamento paralelo, etc.).
1.2
S´
olidos construt´ıveis e n˜
ao-construt´ıveis
Como vimos acima, a fim de efetuarmos a modelagem de objetos em computador faz-se necess´aria uma idealiza¸c˜ao adequada dos objetos f´ısicos tridimensionais de interesse. Esta idealiza¸c˜ao ´e feita com objetos matem´aticos que podem ser definidos atrav´es da teoria de conjuntos e topologia alg´ebrica. Caraterizaremos aqui os objetos matem´aticos que ser˜ao adequados ao processo de modelagem em nosso caso.
Defini¸c˜ao 1.2.1 Um s´olido ´e um conjunto limitado e fechado do espa¸co vetorial IR3
Defini¸c˜ao 1.2.2 Um objeto r´ıgido ´e uma classe de equivalˆencia de conjunto de pontos de IR3 formada pela seguinte rela¸c˜ao de equivalˆencia: A ´e equivalente a B (A ∼ B) se, e somente se, existe um movimento r´ıgido (composi¸c˜ao de transla¸c˜oes e rota¸c˜oes) levando A em B.
Defini¸c˜ao 1.2.3 A regulariza¸c˜ao de um conjunto A⊂ IR3, r(A) ´e definida por: r(A): = c(i(A))
onde c(A) e i(A) denotam, respectivamente, o fecho e interior do conjunto A. Conjuntos que satisfazem r(A) = A s˜ao denominados conjuntos regulares.
Defini¸c˜ao 1.2.4 Uma variedade bidimensional M ´e um espa¸co topol´ogico onde todo ponto possui uma vizinhan¸ca que ´e topologicamente equivalente a um disco aberto de IR2.
Nossos objetos matem´aticos de interesse s˜ao s´olidos r´ıgidos regularizados cujo bordo constitui uma variedade bidimensional. Tais objetos matem´aticos s˜ao denominados s´olidos construt´ıveis.
(a) (b)
Figura 1.1: S´olidos (a) construt´ıvel e (b) n˜ao-construt´ıvel.
1.3
Propriedades de modelos de representa¸
c˜
ao
As seguintes propriedades orientam na an´alise dos diversos modelos de representa¸c˜ao:
(1) Poder de express˜ao: Quais objetos podem ser representados? ´E poss´ıvel ampliar este dom´ınio? Um aspecto do poder de express˜ao ´e a precis˜ao do esquema de representa¸c˜ao: qu˜ao precisamente podem ser representados objetos complicados?
(2) Validade: Todas as representa¸c˜oes admiss´ıveis s˜ao v´alidas? Um esquema com esta propri-edade (desej´avel) ´e denominado sintaticamente v´alido quando ela for¸ca a validade de todos
os s´olidos que obede¸cam suas regras de defini¸c˜ao.
(3) Ambig¨uidade e unicidade: Os modelos de representa¸c˜ao v´alidos designam um ´unico s´olido? S´olidos possuem mais de uma representa¸c˜ao v´alida?
(4) Linguagem de descri¸c˜ao: Que tipo de linguagens de descri¸c˜ao de s´olidos s˜ao suportadas em um sistema de modelamento baseado no esquema de representa¸c˜ao em quest˜ao? Elas s˜ao inerentes, isto ´e, diretamente baseadas nas representa¸c˜oes do esquema ou elas s˜ao baseadas em uma convers˜ao de outro esquema?
(5) Concis˜ao: Qu˜ao grandes (em termos de armazenamento computacional) s˜ao as repre-senta¸c˜oes dos s´olidos de interesse? (Esta propriedade est´a freq¨uentemente em contraponto com a precis˜ao da representa¸c˜ao).
(6) Opera¸c˜oes fechadas: As opera¸c˜oes de manipula¸c˜ao e descri¸c˜ao dos s´olidos preservam a validade das representa¸c˜oes? Qu˜ao gerais s˜ao as manipula¸c˜oes que s˜ao suportadas pelo esquema de representa¸c˜ao?
(7) Aplicabilidade e custo computacional: Que tipo de algoritmos podem ser escritos para
as representa¸c˜oes do esquema? Que tipo de complexidades computacionais est˜ao envolvidas? As representa¸c˜oes do esquema s˜ao apropriadas para que tipo de aplica¸c˜oes? Naturalmente, estamos particularmente interessados em solu¸c˜oes inerentes ao esquema de representa¸c˜ao, isto ´e, que n˜ao envolvam convers˜ao em um esquema de representa¸c˜ao totalmente diferente.
1.4
Classifica¸
c˜
ao de modelos de s´
olidos
1.4.1
Modelos de decomposi¸
c˜
ao
Descrevem os s´olidos atrav´es de uma ´unica opera¸c˜ao de colagem (gluing) de primitivas b´asicas. O tipo de primitivas b´asicas usadas gera variados modelos de decomposi¸c˜ao.
1.4.2
Modelos construtivos
Descrevem os s´olidos atrav´es de operadores de constru¸c˜ao aplicados `as primitivas b´asicas. Os operadores de constru¸c˜ao n˜ao se restringem somente a opera¸c˜ao de colagem (gluing).
1.4.3
Modelos de contorno (boundary models)
Descrevem os s´olidos atrav´es de seus contornos. Um s´olido ´e uma cole¸c˜ao de faces, uma face ´e uma cole¸c˜ao de arestas; uma aresta ´e representada por dois v´ertices.
1.5
Modelos de decomposi¸
c˜
ao
1.5.1
Enumera¸
c˜
ao exaustiva
S´olidos podem ser considerados como conjuntos de pontos. Evidentemente n˜ao podemos enu-merar todos os pontos que perten¸cam a um s´olido mas certamente podemos enumerar cubos (de tamanho especificado) que est˜ao contidos (total ou parcialmente) no s´olido. Os cubos s˜ao tomados de tamanho uniforme de maneira que eles n˜ao se interceptem, isto ´e, eles formam uma subdivis˜ao regular do espa¸co. A representa¸c˜ao resultante ´e denominada enumera¸c˜ao exaustiva.
Destacamos suas propriedades:
(1) Poder de express˜ao: Enumera¸c˜ao exaustiva ´e obviamente aproximativa. Contudo, o esquema ´e geral: todo tipo de objeto pode ser representado em enumera¸c˜ao exaustiva.
(2) Validade: A validade da enumera¸c˜ao exaustiva depende da itera¸c˜ao geom´etrica de cubos individuais. Se apenas s´olidos construt´ıveis s˜ao admitidos, nem toda representa¸c˜ao ´e v´alida (por exemplo, dois cubos que se interceptam apenas em um v´ertice).
(3) Ambig¨uidade e unicidade: Todas representa¸c˜oes v´alidas n˜ao s˜ao amb´ıguas. Existe tamb´em unicidade: fixando-se o espa¸co de interesse e a resolu¸c˜ao, todo s´olido possui apenas uma representa¸c˜ao.
(4) Linguagem de descri¸c˜ao: Em aplica¸c˜oes de processamento de imagens, enumera¸c˜oes exaustivas s˜ao geralmente criadas atrav´es de um scanner. No contexto de modelagem de s´olidos, elas s˜ao geradas atrav´es de uma convers˜ao de outros modelos.
(5) Concis˜ao: Enumera¸c˜ao exaustiva tende a utilizar grande quantidade de armazenamento computacional: uma resolu¸c˜ao de 2563 utiliza 16 milh˜oes de bits de armazenagem.
(6) Opera¸c˜oes fechadas: Enumera¸c˜oes exaustivas suportam muitos algoritmos fechados. E-xemplos s˜ao dadas pelas opera¸c˜oes booleanas.
(7) Aplicabilidade e custo computacional: Algoritmos para este esquema tendem a ser
extremamente simples. Enumera¸c˜ao exaustiva ´e largamente utilizada em processamento di-gital de imagens. Tamb´em, ela ´e utilizada como um esquema auxiliar para acelerar opera¸c˜oes de outras representa¸c˜oes.
1.5.2
Cell decompositions
Um tratramento para se resolver os problemas apresentados em enumera¸c˜ao exaustiva e man-tendo-se suas propriedades ´e a de se utilizar outros tipos de elementos b´asicos que n˜ao sejam apenas cubos. Estes esquemas s˜ao denominados Cell Decompositions.
Destacamos suas propriedades:
(1) Poder de express˜ao: O espa¸co de modelagem ´e geral na presen¸ca de c´elulas com superf´ıcies nas quais o grau n˜ao ultrapassa o grau das c´elulas.
(2) Validade: A validade ´e dif´ıcil de se estabelecer. Para se verificar a validade, um teste de interse¸c˜ao para cada par de c´elulas ´e necess´ario.
(3) Ambig¨uidade e unicidade: Uma decomposi¸c˜ao v´alida determina completamente um s´olido. N˜ao existe unicidade.
(4) Linguagem de descri¸c˜ao: Em geral, ´e muito dif´ıcil criar representa¸c˜oes neste esquema por um mecanismo direto. Usualmente, cell decompositions s˜ao criadas pela convers˜ao de outras representa¸c˜oes mais convenientes.
(5) Concis˜ao: Cell decompositions s˜ao relativamente concisas. As representa¸c˜oes usuais con-sistem de uma lista de n´os, cada uma sendo um ponto tridimensional indexado, seguido por uma lista de elementos que por sua vez possuem um c´odigo e uma lista de n´umeros cuja interpreta¸c˜ao depende do c´odigo.
(6) Opera¸c˜oes fechadas: Em geral, cell decompositions s˜ao apenas usadas como entrada para algoritmos que passivamente examinam o modelo sem modific´a-lo. Algoritmos fechados n˜ao triviais (como opera¸c˜oes booleanas) s˜ao desconhecidos ou computacionalmente intrat´aveis.
(7) Aplicabilidade e custo computacional: Cell decompositions s˜ao indispens´aveis como representa¸c˜ao de entrada para algoritmos computacionais. M´etodo de elementos finitos fornece um exemplo disto.
1.5.3
Octree representation
Octrees fornecem exemplos t´ıpicos de esquemas adaptativos de subdivis˜ao do espa¸co. A repre-senta¸c˜ao octree usa uma subdivis˜ao recursiva do espa¸co de interesse em oito octantes que est˜ao arranjados em uma ´arvore de 8 ramos.
Usualmente uma octree ´e considerado como estando localizada em torno da origem de seu sistema de coordenadas xyz, com seu primeiro n´ıvel de octantes correspondendo aos octantes do espa¸co, e em particular o octante 3 sendo o octante positivo x, y, z > 0. Ent˜ao se faz necess´ario representar o presente espa¸co de interesse separadamente em termos de uma transforma¸c˜ao ade-quada.
Cada node (n´o) de uma octree consiste de um code e oito ponteiros para oito children, numerados de 0 a 7. Se code = full, a parte do espa¸co representada pelo node est´a completa-mente preenchido pelo s´olido e os ponteiros de 0 a 7 s˜ao todos NULL e, portanto, n˜ao existem ramos. Se code = empty, a parte do espa¸co representada est´a vazia e, novamente, n˜ao existem ramos. A terceira possibilidade ´e a de que code = partial e isto corresponde ao fato do espa¸co estar parcialmente preenchido e parcialmente vazio. Neste caso, os oitos ponteiros apontam para oito children que correspondem a uma subdivis˜ao regular do node em quest˜ao.
Constru¸c˜ao de representa¸c˜oes octree
No contexto de modelagem de s´olidos, octrees s˜ao ordinariamente constru´ıdas a partir de pri-mitivas s´olidas. Para cada tipo de primitiva, um procedimento de classifica¸c˜ao entre uma c´opia da primitiva e um n´o arbitr´ario do octree se faz necess´ario. A classifica¸c˜ao deve ser capaz de distinguir entre os seguintes trˆes casos:
Caso 1: O n´o considerado est´a completamento no exterior da primitiva.
Caso 2: O n´o considerado est´a completamento no interios da primitiva.
Caso 3: O n´o est´a parcialmente no interior da primitiva.
Algoritmos para Octrees
Um modelador octree funcionalmente completo deve incluir algoritmos para os seguintes requi-sitos:
(1) Geradores de ´arvores que criam octrees de primitivas parametrizadas ou outros tipos de modelos geom´etricos.
3 3 3 2 0 1 1 5 7 7 6 2 e u u u u u u u u u u u e e e e e e e e e e e e e (a) (b) 6 HHHj x y (c) * z
octree ? box root ? code child[0] .. . child[7] loc ? -box min max loc coord depth xyz xyz -- - xyz 6
Figura 1.3: Esquema representativo para a decomposi¸c˜ao octree.
(2) Opera¸c˜oes booleanas que tomam duas octrees (com mesmo espa¸co de interesse) como ar-gumentos e que calculam uma nova octree resultante da uni˜ao, interse¸c˜ao ou diferen¸ca das mesmas. A implementa¸c˜ao de opera¸c˜oes booleanas leva a algortimos que percorrem sincronicamente as ´arvores de cada objeto, fazendo uma compara¸c˜ao adequada entre n´os respectivos. Por exemplo, no processo de interse¸c˜ao de duas octrees, temos os seguintes casos:
(a) Os n´os n1 e n2 s˜ao folhas. Nesta situa¸c˜ao, o n´o correspondente `a octree resultante ´e full se n1 e n2 s˜ao full; caso contr´ario, ele ´e empty.
(b) Os n´os n1 ou n2 s˜ao folhas (mas n˜ao simultaneamente). Nesta situa¸c˜ao, se o n´o que ´e uma folha for full, a sub-´arvore do n´o que n˜ao ´e uma folha ´e copiada para a octree resultante. Caso contr´ario, o n´o da ´arvore resultante ´e empty.
(c) Os n´os n1 e n2 n˜ao s˜ao folhas. Nesta situa¸c˜ao, o algoritmo ´e aplicado recursivamente `
a sub-´arvore, como acima.
(3) Opera¸c˜oes geom´etricas que tomam uma octree e calculam uma nova para modelar o re-sultado de transla¸c˜ao, rota¸c˜ao ou homotetia do objeto fornecido. Alguns destes problemas levam a algoritmos n˜ao intuitivos e complicados. Por exemplo, a transla¸c˜ao de uma octree ´
e uma opera¸c˜ao relativamente dif´ıcil.
(4) Procedimentos de an´alise que calculam propriedades tais como volume ou ´area de superf´ıcie de uma octree.
(5) Geradores gr´aficos que criam uma imagem gr´afica do objeto modelado pela octree.
Propriedades de Octrees
As propriedades de representa¸c˜oes octrees s˜ao similares as de enumera¸c˜ao exaustiva, com algumas exce¸c˜oes not´aveis.
(1) Poder de express˜ao: Como em enumera¸c˜ao exaustiva, octrees s˜ao representa¸c˜oes aproxi-mativas e modelam de maneira exata apenas objetos muito particulares.
(2) Validade: Nem toda representa¸c˜ao ´e v´alida se adotarmos s´olidos construt´ıveis como os ´
unicos objetos admiss´ıveis.
(3) Ambig¨uidade e unicidade: Fixando-se uma resolu¸c˜ao, octrees representam um s´olido sem ambig¨uidade. A representa¸c˜ao tamb´em ´e ´unica (novamente fixando-se a resolu¸c˜ao): um objeto possui apenas uma ´unica representa¸c˜ao octree compactada (algoritmos tais como opera¸c˜oes booleanas podem criar octrees com n´os desnecess´arios (isto ´e, um n´o interno no qual os oito children s˜ao todos full)).
(4) Linguagem de descri¸c˜ao: As mesmas observa¸c˜oes feitas para enumera¸c˜ao exaustiva se aplicam aqui, isto ´e, octrees s˜ao usualmente formadas por convers˜ao de outras representa¸c˜oes.
(5) Concis˜ao: Em geral, o n´umero de n´os de uma representa¸c˜ao octree de um objeto ´e pro-porcional a sua ´area de superf´ıcie. Desta maneira, modelos octree n˜ao s˜ao t˜ao dispendiosos como representa¸c˜oes exaustivas mas mesmo assim utilizam uma grande quantidade de ar-mazenamento.
(6) Opera¸c˜oes fechadas: Transla¸c˜oes e rota¸c˜oes s˜ao exemplos de opera¸c˜oes fechadas. Ope-ra¸c˜oes booleanas podem gerar representa¸c˜oes n˜ao v´alidas (isto ´e, podem gerar objetos que n˜ao s˜ao construt´ıveis).
(7) Aplicabilidade e custo computacional: Muitos algortimos para octree podem ser
cons-tru´ıdos utilizando-se uma procura linear na ´arvore e opera¸c˜oes relativamente simples em cada node. Para estes algoritmos, as mesmas observa¸c˜os feitas para enumera¸c˜ao exaustiva se aplicam.
Octrees lineares
Embora octrees utilizem uma quantidade menor de armazenamnto se comparadas com enu-mera¸c˜ao exaustiva, esta ´e ainda muito grande. Isto tem levado pesquisadores a investigar possi-bilidades de se compactar representa¸c˜oes octrees e de se substituir uma representa¸c˜ao expl´ıcita (em termos da ´arvore) por representa¸c˜oes alternativas como por exemplo uma estrutura de dados linear. Evidentemente, tais representa¸c˜oes s˜ao tamb´em convenientes para de armazenar octrees em dispositivos externos.
Os octantes de uma octree seguem uma ordena¸c˜ao (de 0 a 7). Estes n´umeros podem ser usados para se contruir um endere¸co para cada n´o de uma octree (com exce¸c˜ao da raiz). Claramente, o endere¸co de um n´o de n´ıvel i ´e uma seq¨uˆencia de i d´ıgitos de 0 a 7. Um s´ımbolo especial pode ser inclu´ıdo para se indicar que os n´ıveis subseq¨uentes ao n´ıvel demarcado pela posi¸c˜ao do s´ımbolo (inclusive) ´e dispens´avel na representa¸c˜ao do endere¸co.
A octree linear de Gargantini ´e baseada nestas observa¸c˜oes. Em seu esquema, uma octree linear ´e simplesmente uma lista ordenada de endere¸cos para todos os n´os full. Assim, a octree linear correspondente `a da figura 1.2 ´e simplesmente a lista
onde X ´e o s´ımbolo utilizado para representar que o endere¸co do n´o termina no n´ıvel anterior. Uma outra representa¸c˜ao linear de uma octree ´e a assim denominada representa¸c˜ao DF.
Ela ´e constru´ıda percorrendo-se a ´arvore em uma determinda ordem e armazenando-se certas informa¸c˜oes dos n´os encontrados. O m´etodo utiliza o alfabeto “B”, “W” e “(” para se denotar um n´o full, um n´o empty e um n´o partial, respectivamente. Desta maneira, a representa¸c˜ao DF correspondente `a figura 1.2 constitu´ı-se do seguinte:
(WW(WWBBWWBBBWWW(BBBBWBWB
Como o alfabeto possui apenas trˆes caracteres, dois bits para cada n´o s˜ao suficientes para a codifica¸c˜ao.
Observamos, finalmente, que muitos algoritmos importantes podem ser realizados utilizando-se somente repreutilizando-senta¸c˜oes lineares (como opera¸c˜oes booleanas).
Cap´ıtulo 2
Modelos construtivos
Os modelos de decomposi¸c˜ao discutidos no trabalho anterior representam s´olidos como uma cole¸c˜ao b´asica de elementos combinados com uma opera¸c˜ao de colagem (gluing). Em contraste, modelos construtivos utilizam opera¸c˜oes mais poderosas.
2.1
Modelos half-spaces
Todos modelos construtivos consideram s´olidos como pontos do IR3. A id´eia b´asica destes modelos ´e a de se come¸car a partir de conjuntos suficientemente simples que podem ser representados diretamente e modelar outros conjuntos de pontos em termos de combina¸c˜oes muito gerais destes conjuntos simples. Os assim denominados modelos half-spaces aplicam este tratamento de uma maneira direta.
2.1.1
Half-spaces
A todo conjunto de pontos A podemos associar uma fun¸c˜ao caracter´ıstica gA: IR3 → {0, 1}
que diz se um ponto x∈ IR3 pertence ou n˜ao a A. Em outras palavras, a fun¸c˜ao gAdeve satisfazer
gA(x) = 1 ⇒ x ∈ A
gA(x) = 0 ⇒ x ∈ A
Para conjuntos de pontos muito gerais, fun¸c˜oes caracter´ısticas n˜ao oferecem muita ajuda porque suas representa¸c˜oes seriam t˜ao dif´ıceis quanto as representa¸c˜oes dos pr´oprios conjuntos. Contudo, para uma interessante classe de conjuntos de pontos, gApode ser representada em termos de uma fun¸c˜ao real anal´ıtica f de x, y e z definida em todo o IR3. A restri¸c˜ao para fun¸c˜oes anal´ıticas nos garante a exclus˜ao de certos objetos “patol´ogicos”. Todos os pontos
x = (x, y, z)
tais que f ´e igual a zero s˜ao considerados como pertencendo ao conjunto de pontos enquanto que
se tomar como conven¸c˜ao as desigualdades contr´arias). Uma vez que
f (x) = 0
divide todo o espa¸co em duas partes, os conjuntos de pontos definidos por
f (x)≥ 0 e f(x) ≤ 0
s˜ao denominados half-spaces. Por exemplo, as fun¸c˜oes
ax + by + cz + d ≥ 0 x2+ y2− r2 ≤ 0
definem dois conjuntos de pontos muito ´uteis, a saber, o half-space planar que consiste de todos os pontos que est˜ao sobre ou dentro do lado positivo do plano ax + by + c + d = 0 e o half-space cil´ındrico que consiste de todos os pontos que est˜ao sobre ou dentro de um cilindro infinito com eixo de revolu¸c˜ao dado pelo eixo z e raio r.
Outros half-spaces de interesse incluem as superf´ıcies quadricas tais como a esfera e cones, e certas superf´ıcies de maior ordem como o toro. Observe que esta cole¸c˜ao inclui tanto half-spaces ilimitados (como o caso do cilindro infinito acima) como half-spaces limitados (como o caso da esfera x2+ y2+ z2− r2 ≤ 0).
2.1.2
Opera¸
c˜
oes booleanas
Half-spaces fornecem as primitivas b´asicas de modelamento. Como half-spaces s˜ao conjuntos de pontos, os procedimentos naturais de modelagem para modelos half-spaces s˜ao as opera¸c˜oes booleanas de uni˜ao (∪), interse¸c˜ao (∩) e diferen¸ca (\).
Assim, modelos half-spaces s˜ao constru´ıdos combinando-se instanciamentos de half-spaces com opera¸c˜oes booleanas. Por exemplo, para se descrever um cilindro finito C de comprimento
h, s˜ao necess´arios um half-space cil´ındrico e dois half-spaces planares, combinados juntos com a opera¸c˜ao “∩”:
H1 : x2+ y2− r2 ≤ 0
H2 : z ≥ 0
H3 : z− h ≤ 0
C = H1∩ H2∩ H3
Esta constru¸c˜ao ´e ilustrada na figura (2.1).
Desta maneira, uma espa¸co de modelagem M de um modelador half-space ´e a classe de combina¸c˜oes booleanas dos half-spaces dispon´ıveis.
2.1.3
Representa¸
c˜
ao de modelos half-spaces
Como visto acima, a representa¸c˜ao de um modelo half-space divide-se em duas partes:
(1) Representa¸c˜ao de half-spaces: O procedimento mais comum ´e o de representar half-spaces como instanciamentos de half-spaces base em algum sistema conveniente de coordenadas,
Figura 2.1: Modelo half-space de um cilindro finito.
utilizando-se para isto, um c´odigo que descreve o tipo de half-space, uma lista de parˆametros que descreve seu tamanho e uma matriz de transforma¸c˜ao que fornece sua localiza¸c˜ao e orienta¸c˜ao.
Como uma alternativa para este tratamento, todos os half-spaces descritos por quadricas podem ser representados atrav´es das fun¸c˜oes f (x) = f (x, y, z) que os definem, isto ´e, uma vez que f (x, y, z) = x y z 1 ⎡ ⎢ ⎢ ⎢ ⎣ A11 A12 A13 A14 A21 A22 A23 A24 A31 A32 A33 A34 A41 A42 A43 A44 ⎤ ⎥ ⎥ ⎥ ⎦ ⎡ ⎢ ⎢ ⎢ ⎣ x y z 1 ⎤ ⎥ ⎥ ⎥ ⎦
podemos armazenar os 16 coeficientes Aij ou os 10 coeficientes resultantes calculando-se as multiplica¸c˜oes acima.
(2) Representa¸c˜ao de combina¸c˜oes booleanas de half-spaces: Uma possibilidade para este tipo
de representa¸c˜ao resulta do fato que toda express˜ao booleana pode ser escrita na forma “soma de produtos”, mais especificamente, um s´olido S ´e expresso na forma
S =
i
j
Hij
onde os Hij denotam os half-spaces individuais de S.
2.1.4
Propriedades dos modelos half-spaces
Temos:
(1) Poder de express˜ao: O poder de express˜ao de um modelador half-space ´e determinado pela sela¸c˜ao dos half-spaces dispon´ıveis. e da generalidade das opera¸c˜oes presentes para
combin´a-los. Tipicamente, modeladores desta classe incluem half-spaces que s˜ao dados por quadricas (planos, superf´ıcies cil´ındricas, cˆonicas, esf´ericas, etc.) e, em algumas vezes, at´e mesmo um toro.
(2) Validade: Half-spaces s˜ao conjuntos de pontos n˜ao limitados. Mesmo uma combina¸c˜ao deles pode ser ilimitada e, assim, nem todas combina¸c˜oes s˜ao s´olidos v´alidos (se apenas varieades limitadas s˜ao admitidas).
(3) Ambig¨uidade e unicidade: Cada combina¸c˜ao v´alida de half-spaces determina um s´olido. Assim, modelos half-spaces n˜ao s˜ao amb´ıguos. Representa¸c˜oes half-spaces n˜ao s˜ao ´unicas.
(4) Linguagem de descri¸c˜ao: Instanciamentos e combina¸c˜oes de half-spaces nos levam a uma maneira relativamente simples de se descrever s´olidos. Com algum esfor¸co, se ´e tamb´em poss´ıvel criar uma interface gr´afica com o usu´ario.
(5) Concis˜ao: Modelos half-spaces s˜ao relativamente concisos: algumas centenas de half-spaces s˜ao usualmente suficientes para modelar partes real´ısticas adequadamente (dentro das li-mita¸c˜oes do espa¸co de modelagem).
(6) Opera¸c˜oes fechadas: Nem sempre combina¸c˜oes booleanas de half-spaces resultam em um s´olido admiss´ıvel. Introduziremos mais adiante opera¸c˜oes booleanas regularizadas para corrigir este tipo de problema.
(7) Aplicabilidade e custo computacional: Os algoritmos naturais para modelagem com o
uso de half-spaces s˜ao os assim denominados algoritmos de classifica¸c˜ao de pertinˆencia (set
membership classification). Discutiremos mais adiante esta fam´ılia de algoritmos.
2.2
Constructive Solid Geometry
Modelos half-spaces puros fornecem um tratamento matematicamente rigoroso e de f´acil enten-dimento. Para usu´arios finais, contudo, ´e mais f´acil operar sobre primitivas limitadas ao inv´es de half-spaces ilimitados. Observe tamb´em que combina¸c˜oes de half-spaces podem resultar em um conjunto de pontos ilimitado o que confronta nossa no¸c˜ao de um s´olido v´alido. Para evi-tar a gera¸c˜ao de conjuntos ilimitados, a assim denonimada Constructive Solid Geometry (CSG) fornece um maneira de se modelar s´olidos com o uso de conjunto de conjuntos limitados como primitivas.
2.2.1
Representa¸
c˜
ao de modelos CSG
Representa¸c˜os CSG s˜ao ´arvore bin´arias (ordenadas). N´os intermedi´arios representam operadores que podem ser ou movimentos r´ıgidos ou opera¸c˜oes booleanas regularizadas (que ser˜ao definidas mais adiante) enquanto que n´os terminais (folhas) representam as primitivas.
´
Arvores CSG podem ser definidas como se segue:
´arvore CSG : : = primitiva |
´arovre CSG opera¸c~ao booleana ´arvore CSG | ´arvore CSG movimento r´ıgido
No esquema acima, <primitiva> ´e um instanciamento de uma primitiva s´olida, representada atrav´es de um c´odigo que identifica o tipo da primitiva e uma seq¨uˆencia de parˆametros que determina suas dimens˜oes. <movimento r´ıgido> denota ou uma transla¸c˜ao ou uma rota¸c˜ao e, finalmente, < opera¸c~ao booleana> ´e uma das opera¸c˜oes booleanas∩, ∪ e \.
Desta maneira, primitivas s˜ao representadas como folhas de uma ´arvore CSG enquanto que n´os interiores representam ou uma opera¸c˜ao booleana ou um movimento r´ıgido. Segundo este ponto de vista, tais opera¸c˜oes e movimentos s˜ao interpretados como operando sobre ´arvores CSG. Cada primitiva ´e escolhida de modo a definir um conjunto limitado do IR3. Como o conjunto de opera¸c˜oes dispon´ıveis n˜ao destr´oi o fato dos conjuntos serem limitados, modelos CSG sempre produzir˜ao conjuntos limitados. O f´acil uso de um modelador CSG depende muito da cole¸c˜ao de primitivas dispon´ıveis. Por exemplo, a figura (2.2) exibe trˆes cole¸c˜oes de primitivas. Observe como a cole¸c˜ao (a) inclui v´arias arestas para ajudar na modelagem de formas arrendondadas que s˜ao frequentemente necess´arias em partes mecˆanicas. Note que todas as primitivas da figura podem ser expressas como uma combina¸c˜ao booleana de half-spaces simples (neste caso, planos e cilindros).
O dom´ınio de uma modelador CSG depende da variedade de half-spaces dispon´ıveis em suas primitivas e dos movimentos r´ıgidos e opera¸c˜oes booleanas dispon´ıveis. Observe que apesar das trˆes cole¸c˜oes da figura (2.2) possu´ırem primitivas distintas, todas as trˆes definem um mesmo dom´ınio.
Opera¸c˜oes booleanas regularizadas
Algumas combina¸c˜oes de primitivas CSG (ou half-spaces) n˜ao constituem variedades constru-t´ıveis. Considere, por exemplo, o caso da figura (2.3). De acordo com a defini¸c˜ao ordin´aria de opera¸c˜oes booleanas, a interse¸c˜ao dos dois objetos consiste de um objeto retangular mais um segmento de reta. Sobre a ´otica de caracteriza¸c˜ao de s´olidos como conjunto de pontos, o problema do objeto resultante ´e o de que ele n˜ao ´e regular: o segmento de reta pendente viola a defini¸c˜ao de regularidade. A fim de evitar tais tipos de objetos, introduzimos a no¸c˜ao de opera¸c˜oes regularizadas.
Defini¸c˜ao 2.2.1 As opera¸c˜oes booleanas de uni˜ao∗, interse¸c˜ao∗ e diferen¸ca∗ regularizadas, de-notadas por ∪∗, ∩∗ e \∗, respectivamente, s˜ao definidas por:
A ∪∗B = c(i(A ∪ B)) A ∩∗B = c(i(A ∩ B)) A \∗B = c(i(A \ B))
onde ∪, ∩ e \ denotam, respectivamente, as opera¸c˜oes booleanas usuais. i(·) e c(·) denotam as opera¸c˜oes topol´ogicas de interior e fecho.
Se primitivas CSG s˜ao escolhidas como conjuntos limitados regulares, as opera¸c˜oes boolea-nas regularizadas possuem a desej´avel propriedade de serem algebricamente fechadas na classe de conjuntos limitados regulares. Isto ´e, garante-se assim que toda ´arvore CSG constitui um conjunto limitado regular.
(a)
(b)
(c)
A∩ B B
A
Figura 2.3: Uma opera¸c˜ao booleana n˜ao regular.
2.2.2
Algoritmos para modelos CSG
As ´arvores CSG podem ser vistas como descri¸c˜oes impl´ıcitas da geometria do s´olido modelado que devem ser analizadas, de alguma maneira, a fim de se criar uma sa´ıda gr´afica ou se efetuar c´alculos.
A estrutura da ´arvore CSG sugere o uso da t´ecnica “dividir e conquistar” cuja id´eia b´asica ´e o de dividir o problema em duas partes, recursivamente resolver cada uma delas e unir os resultados parciais de modo a se obter uma solu¸c˜ao global. A recurs˜ao termina quando o problema foi subdividido em partes “primitivas” que permitem uma solu¸c˜ao direta.
Quando aplicado a uma ´arvore CSG, a maneira natural de se subdividir o problema ´e o de processar as sub-´arvores de cada n´o interior (que no caso constitui uma opera¸c˜ao booleana) separadamente. A recurs˜ao termina nas folhas onde o problema ´e resolvido para primitivas. Solu¸c˜oes dos subproblemas s˜ao ent˜ao combinadas segundo a opera¸c˜ao booleana em quest˜ao.
2.2.3
Propriedades de modelos CSG
Temos:
(1) Poder de express˜ao: Depende da classe de primitivas (ou half-spaces) dispon´ıveis. (2) Validade: Toda ´arvore CSG reprenta um s´olido admiss´ıvel desde que primitivas v´alidas
(isto ´e, primitivas limitadas) sejam consideradas e apenas opera¸c˜oes booleanas regularizadas sejam aplicadas.
(3) Ambig¨uidade e unicidade: Toda ´arvore CSG modela um s´olido sem ambig¨uidade. N˜ao existe unicidade.
(4) Linguagem de descri¸c˜ao: Usualmente linguagem textual. E poss´ıvel se incluir uma´ interface gr´afica em um modelador CSG.
(5) Concis˜ao: ´Arvores CSG s˜ao, em princ´ıpio, relativamente concisas. Em modeladores pr´ ati-cos, elas tendem a crescer quando outras informa¸c˜oes, que ajudam na eficiˆencia de opera¸c˜oes gr´aficas, s˜ao inclu´ıdas na ´arvore CSG b´asica.
(6) Opera¸c˜oes fechadas: Opera¸c˜oes booleanas regularizadas s˜ao algebricamente fechadas para ´
arvores CSG.
(7) Aplicabilidade e custo computacional: O poder computacional de algums algoritmos
CSG importantes ´e pobre. Os algoritmos de dividir e conquistar geralmente conduzem a algoritmos eficintes embora ´arvores CSG mal balanceadas possam prejudicar a eficiˆencia de tais algoritmos.
2.3
Classifica¸
c˜
oes de pertinˆ
encia
Os assim denominados algoritmos de classifica¸c˜ao de pertinˆencia (set membership classification
algorithms) s˜ao uma classe particularmente ´util de algoritmos baseados na t´ecnica de “dividir e conquistar”. Em termos gerais, um tal algoritmo age sobre dois conjuntos de pontos, a saber, o conjunto candidato C e o conjunto de referˆencia R. O algoritmo deve classificar C com rela¸c˜ao a R formando trˆes conjuntos CinR, ConR e CoutR representando as partes de C no interior, na fronteira e no exterior de R, respectivamente. Por exemplo, o algoritmo para se classificar um segmento de reta finito (uma “aresta”) com rela¸c˜ao a uma ´arvore CSG pode ser visto segundo esta id´eia geral tomando-se como conjuntos:
• C: uma aresta E dada em termos de um par de n-uplas ordenadas. • R: uma ´arvore CSG S.
• CinR, ConR, CoutR: os conjuntos EinS, EonS e EoutS consistindo cada um de
subseg-mentos de E tais que EinS∪ EonS ∪ EoutS = S e que representam, respectivamente, os pontos de E que est˜ao no interior, na fronteira e no exterior de S.
Outros exemplos de classifica¸c˜ao de pertinˆencia s˜ao dados por classifica¸c˜ao ponto/s´olido, classi-fica¸c˜ao face/s´olido, etc.
2.3.1
Propaga¸
c˜
ao para baixo
A classifica¸c˜ao ponto/s´olido ´e naturalmente implementada como um conjunto de procedimentos recursivos mas ela pode ser pensada, de uma maneira mais simples, como passando mensagens atrav´es dos n´os da ´arvore. No in´ıcio, as coordenadas dos pontos s˜ao enviadas a partir da raiz da ´
arvore. Dali, elas s˜ao propagadas em dire¸c˜ao `as folhas, possivelmente alteradas. Em cada folha, as coordenadas finais descrevem o mesmo ponto mas com rela¸c˜ao ao sistema de coordenadas locais da primitiva que a folha representa.
Na folha, classificamos o ponto como in, on ou out dependendo se o ponto est´a no interior, na fronteira ou no exterior da primitiva. Esta classifica¸c˜ao ´e devolvida para a raiz. Em um n´o intermedi´ario, os resultados das sub´arvores s˜ao combinados. Assim, a primeira fase do algoritmo pode ser descrita como se segue.
(1) Se o ponto (x, y, z) chega em um n´o que define uma opera¸c˜ao booleana, ent˜ao ele ´e passado inalterado para os n´os descendentes.
(2) Se o ponto (x, y, z) chega em um n´o que define uma transla¸c˜ao ou rota¸c˜ao, a transla¸c˜ao ou rota¸c˜ao inversa ´e aplicada em (x, y, z) fornecendo um novo ponto (x, y, z) que ´e enviado para n´os descendentes.
(3) Se o ponto (x, y, z) chega em uma folha, ent˜ao o ponto ´e classificado com rela¸c˜ao a primitiva e esta classifica¸c˜ao ´e devolvida para o pai da folha.
2.3.2
Propaga¸
c˜
ao para cima
Na segunda fase do algoritmo as mensagens contendo a classifica¸c˜ao do ponto devem ser com-binadas segundo as opera¸c˜oes booleanas que definem os n´os intermedi´arios. Nenhum trabalho ´e realizado em n´os que representam transla¸c˜oes ou rota¸c˜oes. A tabela (2.1) mostra o que deve ser feito para n´os que representam uma uni˜ao ou uma interse¸c˜ao.
∪∗ in on out in in in in on in on? on out in on out ∩∗ in on out in in on out on on on? out
out out out out
Tabela 2.1: Combina¸c˜ao de vizinhan¸cas para uni˜ao e interse¸c˜ao.
2.3.3
Vizinhan¸
cas
Implementado desta maneira, o algoritmo estar´a incorreto. Considere, por exemplo, os exemplos dados na figura (2.4). O problema aqui ´e a classifica¸c˜ao dos pontos que est˜ao sobre a fronteira da superf´ıcie da primitiva. Estes pontos podem estar sobre uma regi˜ao da superf´ıcie da primitiva que permanecem sobre a superf´ıcie do s´olido descrito pela ´arvore, e ent˜ao a tabela fornece um re-sultado correto. Se, contudo, o ponto est´a em uma regi˜ao da superf´ıcie que n˜ao est´a na superf´ıcie
A
B
A B
Figura 2.4: Ambig¨uidade no caso “on-on”.
final do objeto, ent˜ao a tabela fornece um resultado incorreto. O que se faz necess´ario para resol-ver este tipo de problema ´e o de descrever a geometria local na vizinhan¸ca do ponto. Isto pode
ser feito com a informa¸c˜ao adicional da vizinhan¸ca do ponto. N˜ao entraremos em detalhes sobre a incorpora¸c˜ao de vizinhan¸cas na estrutura de dados para se resolver este tipo de ambig¨uidade. Sugerimos ao leitor o artigo de Robert Bruce Tilove, Set Membership Classification: A Unified
Approach to Geometric Intersection Problems, IEEE Transactions on Computers, Volume C-29,
Cap´ıtulo 3
Modelos baseados em superf´ıcies
Se faz preciso referenciar certas propriedades da superf´ıcie de um s´olido a fim de evitar de-terminadas anomalias que ocorrem quando somente do uso de teoria de conjuntos. De fato, ´e perfeitamente poss´ıvel caracterizar espa¸cos de modelagem apenas atrav´es das propriedades destas superf´ıcies.
A caracteriza¸c˜ao de s´olidos baseados em suas superf´ıcies toma a fronteira de um objeto s´olido. Esta ´e composta de uma cole¸c˜ao de “faces” que s˜ao “coladas” a fim de formar uma “pele” completa do objeto. Para podermos falar rigorosamente destes procedimentos informais e enunciar explicitamente sobre quais condi¸c˜oes obtemos um s´olido satisfazendo nossa no¸c˜ao de “construtibilidade”, usaremos os conceitos desenvolvidos em outro ramo da topologia, a saber,
topologia alg´ebrica.
3.1
Variedades bidimensionais
Intuitivamente, uma superf´ıcie pode ser considerada como um conjunto de IR3 que ´e essenci-almente “bidimensional”: todo ponto da superf´ıcie (exceto pontos sobre uma aresta de bordo) est˜ao no interior de uma regi˜ao “bidimensional” de pontos da superf´ıcie.
A bidimensionalidade da superf´ıcie significa que podemos estudar suas propriedades atrav´es de um modelo plano. Primeiro, definiremos mais abstratamente (e mais rigorosamente) o que entendemos por superf´ıcie e ent˜ao construiremos um modelo simples para ela em termos de uma topologia especial definida no espa¸co euclidiano IR2.
Defini¸c˜ao 3.1.1 Uma variedade bidimensional M ´e um espa¸co topol´ogico onde todo ponto possui uma vizinhan¸ca que ´e topologicamente equivalente a um disco aberto do IR2.
Intuitivamente, um inseto vivendo em M vˆe em torno de si uma regi˜ao cont´ınua simples. Esta no¸c˜ao pode ser perfeitamente aplicada em nosso caso e o planeta Terra. De fato, a superf´ıcie de uma esfera ´e uma variedade bidimensional.
3.2
Limita¸
c˜
oes de modelos em variedades
Seja A um conjunto regularizado e limitado. Se uma variedade bidimensional M e a fronteira de A, ∂(A), s˜ao topologicamente equivalentes, dizemos que A ´e uma realiza¸c˜ao de M em IR3.
Como veremos em breve, a classe de variedades bidimensionais que possuem pelo menos uma realiza¸c˜ao pode ser caracterizada precisamente. Denominaremos tais varieades bidimensionais de realiz´aveis.
Infelizmente, nem todos conjuntos regularizados e limitados s˜ao realiza¸c˜oes de alguma va-riedade bidimensional. A figura (3.1) ilustra alguns destes conjuntos. O problema com todos estes objetos ´e que suas superf´ıcies tocam-se em um ponto ou sobre um segmento de curva. As vizinhan¸cas de tais pontos n˜ao s˜ao discos, como requerido pela defini¸c˜ao (3.1.1). Por exemplo, a vizinhan¸ca do ponto problema na figura (3.1)−(a) consiste de dois discos.
Assim, existe uma incompatibilidade natural entre modelos em conjuntos regularizados limi-tados e modelos em variedades. Para prop´ositos pr´aticos, objetos como os da figura (3.1) podem ser representados indiretamente “ignorando-se” os pontos e segmentos de retas excepcionais. Desta maneira, o objeto da figura (3.1)−(a) seria representado como uma combina¸c˜ao r´ıgida de duas componentes.
3.3
Modelos planos de variedades bidimensionais
Para estabelecer condi¸c˜oes suficientes para que uma variedade seja realiz´avel necessitaremos de um mecanismo que possa representar todas as variedades bidimensionais de maneira a nos permitir elaborar sobre suas propriedades. Para este prop´osito, usaremos os modelos planos.
Para ilustrar a id´eia b´asica da representa¸c˜ao vamos considerar primeiro um exemplo simples. A figura (3.2) representa um pol´ıgono de quatro lados enquanto que (b) representa a superf´ıcie cil´ındrica obtida colando-se em (a) as duas arestas nomeadas com α.
A id´eia b´asica do que se segue ´e empregar uma figura plana nomeada (como o retˆangulo em (a)) a fim de elaborarmos sobre as propriedades de uma superf´ıcie (o cilindro). Isto ´e feito definindo-se uma topologia especial na figura plana.
Na topologia natural do IR2, as vizinhan¸cas de um ponto s˜ao todas discos abertos de algum raio r em torno do ponto. O mesmo ocorre na topologia especial que usaremos, exceto para pontos sobre arestas nomeadas. Para estes, vizinhan¸cas consistem da uni˜ao de dois semidiscos em torno de pontos sim´etricos sobre a aresta (veja figura (3.2)−(a)).
Para esta topologia especial, pontos sim´etricos sobre arestas possuem as mesmas vizinhan¸cas, a saber, as vizinhan¸cas circulares que elas possuiriam se arestas sob um mesmo nome fossem coladas. Tais pontos s˜ao distos estarem topologicamente identificados e s˜ao tratados como um ´
unico ponto. Observe que, agora, todos os pontos do cilindro de (a), exceto aqueles sobre arestas n˜ao nomeadas, possuem vizinhan¸cas topologicamente equivalentes a um disco de IR2. Por causa destes pontos excepcionais, o cilindro ´e denominado uma superf´ıcie com bordo.
Outros exemplos de modelos planos s˜ao dados na figura (3.3). O modelo plano de uma esfera ´e obtido simplesmente identificando-se os pontos correspondentes das arestas nomeadas em (a); a bola de futebol americano ´e quase um perfeito exemplo pr´atico deste procedimento. O prosseguimento natural da figura (3.2) ´e o modelo de um toro em (b). Ele ´e criado identificando-se as arestas de cima e de baixo do modelo plano do cilindro (penidentificando-se em curvar um cilindro at´e que suas extremidades se toquem). Note agora que todas as vizinhan¸cas s˜ao discos completos e, superf´ıcies onde isto ocorre s˜ao denominadas superf´ıcies sem bordo.
O caso (c) d´a outra varia¸c˜ao da figura (3.2): aqui a orienta¸c˜ao das arestas identificadas foram trocadas produzindo o modelo da bem conhecida faixa de M¨obius.
(a) (b)
(c)
6 α α 6 6 α α (a) (b)
Figura 3.2: Uma superf´ıcie cil´ındrica.
3.4
Defini¸
c˜
ao formal de modelos planos
A fim de tratarmos de modelos planos mais complicados, ´e necess´ario formalizar a defini¸c˜ao intuitiva dada acima. Come¸caremos definindo identifica¸c˜ao de arestas:
Defini¸c˜ao 3.4.1 Sejam P uma cole¸c˜ao de pol´ıgonos e a1, a2, . . . uma cole¸c˜ao de arestas destes pol´ıgonos. Estas arestas s˜ao ditas estarem identificadas quando uma nova topologia ´e definida em P como se segue:
(1) Cada aresta possui uma orienta¸c˜ao de uma extremidade para outra e est´a colocada em correspondˆencia topol´ogica com o intervalo unit´ario de modo que os pontos iniciais de todas as arestas correspondam a 0 e pontos finais a 1.
(2) Os pontos sobre as arestas a1, a2, . . . que correspondem a um mesmo valor do intervalo unit´ario s˜ao tratados como um ´unico ponto.
(3) As vizinhan¸cas da nova topologia em P s˜ao discos inteiramente contidos em um ´unico pol´ıgono mais a uni˜ao de semidiscos cujos diˆametros s˜ao intervalos sobre pontos correspon-dentes nas arestas a1, a2, . . ..
Em outras palavras, na nova topologia as arestas identificadas a1, a2, . . . s˜ao tratadas como uma ´
unica aresta.
Nos exemplos precedentes, a identifica¸c˜ao de arestas foi representada colocando-se arestas identificadas sob um mesmo nome; setas foram usadas para indicar a orienta¸c˜ao das arestas.
A seguir definiremos a identifica¸c˜ao de v´ertices:
Defini¸c˜ao 3.4.2 Sejam P um conjunto de pol´ıgonos e p1, p2, . . . uma cole¸c˜ao de v´ertices destes pol´ıgonos. Estes v´ertices s˜ao ditos estarem identificados quando uma nova topologia ´e definida em P na qual esta cole¸c˜ao de v´ertices ´e tratada como um ´unico ponto e vizinhan¸cas s˜ao definidas como discos inteiramente contidos em uma ´unica face mais a uni˜ao de setores de discos em torno
(c) 6 -6 6 (b) (a) &% '$ ? ? 6 α α β α α β α α
Figura 3.3: Outras superf´ıcies: (a) esfera, (b) toro e (c) faixa de M¨obius.
de cada um dos pontos p1, p2, . . .. No caso de alguma das arestas encontrando um destes v´ertices estar identificada, os setores formando uma vizinhan¸ca em p1, p2, . . . deve conter os intervalos sobre estas arestas.
Se a cole¸c˜ao de v´ertices p1, p2, . . . est˜ao identificados diremos que os respectivos pol´ıgonos r1, r2, . . .
est˜ao identificados na mesma cole¸c˜ao.
Modelos planos podem agora ser definidos rigorosamente:
Defini¸c˜ao 3.4.3 Um modelo plano ´e um grafo planar {N, A, R} com um n´umero finito de v´ertices N = {n1, n2, . . . , nu}, arestas A = {a1, a2, . . . , av} e pol´ıgonos R = {r1, r2, . . . , rt} cons-tituidos das arestas e v´ertices dados em N e A, respectivamente. Cada pol´ıgono do grafo possui uma certa orienta¸c˜ao em suas arestas e v´ertices. Pol´ıgonos, arestas e v´ertices do grafo s˜ao nome-ados; se uma cole¸c˜ao de arestas ou v´ertices possui o mesmo nome, eles s˜ao considerados estando identificados de acordo com as defini¸c˜oes (3.4.1) e (3.4.2).
A figura (3.4)−(a) ilustra a defini¸c˜ao acima. Na figura, arestas e v´ertices com nomes corres-pondentes est˜ao identificados. Assim, por exemplo, as vizinhan¸cas de cada ponto na aresta com nome e1, consistem de dois semidiscos, e a vizinhan¸ca do v´ertice v1 consiste de quatro setores de disco.
Por simplicidade, desenharemos modelos planos em uma forma condensada tal como em (b), onde algumas arestas identificadas foram escritas como uma ´unica e seus nomes n˜ao foram inclu´ıdos. Analogamente, podemos desenhar uma cole¸c˜ao de v´ertices identificados como um ´unico
6 = Z Z Z Z ZZ~ 6 - > Z Z Z Z Z Z } 7JJ J J J J ^ S S S S S S o ? ? v1 e5 v2 v5 e1 e2 v1 v5 v4 v5 v4 e6 e1 e4 e6 v2 v2 v3 e5 e5 e7 v3 v1 e2 e3 e3 v4 e7 e3 e4 v1 e8 = Z Z Z Z ZZ~ > Z Z Z Z Z Z } 7JJ J J J J ^ S S S S S S o v1 e1 e2 v1 e1 e4 v1 e2 e3 e3 e4 v1 (a) (b)
Figura 3.4: Modelos planos de uma pirˆamide.
ponto. Note que a figura (3.4)−(a) e (b) representam a mesma estrutura {N, A, R} e, ent˜ao, o mesmo modelo plano. Incluiremos o “pol´ıgono infinito exterior” no desenho de um modelo plano quando conveniente.
3.5
Modelos planos realiz´
aveis
Podemos finalmente concentrar nossa aten¸c˜ao sobre as condi¸c˜oes necess´arias para que um modelo plano seja realiz´avel.
3.5.1
Subdivis˜
oes de uma superf´ıcie
Identifica¸c˜oes topol´ogicas como definidas acima podem produzir vizinhan¸cas que n˜ao s˜ao discos e, portanto, n˜ao satisfazem a defini¸c˜ao de variedade topol´ogica bidimensional. Para excluir tais casos, vamos restringir a identifica¸c˜ao de modelos planos:
Defini¸c˜ao 3.5.1 Um modelo plano ´e uma subdivis˜ao de uma superf´ıcie se as seguintes condi¸c˜oes s˜ao obedecidas na identifica¸c˜ao de sua arestas e v´ertices:
(1) Toda aresta est´a identificada com exatamente uma outra.
(2) Para cada cole¸c˜ao de v´ertices identificados, os pol´ıgonos identificados nesta cole¸c˜ao podem ser arranjados em um ciclo de tal maneira que cada par de pol´ıgonos consecutivos no ciclo est´a identificado na aresta adjacente ao v´ertice da cole¸c˜ao.
Observe que a aresta v2− v5 na figura (3.4)−(b) representa o par de arestas com nome e5 em (a); ent˜ao, v2− v5 satisfaz a primeira condi¸c˜ao. Ela, assim, n˜ao permite objetos como os da figura (3.1)−(b) (onde quatro arestas foram identificadas).
A segunda condi¸c˜ao garante que as vizinhan¸cas combinadas de cada grupo identificado de v´ertices ´e um disco; por exemplo, os seis pol´ıgonos identificados na figura (3.1)−(a) n˜ao podem ser arranjados em um ciclo simples.
3.5.2
Orientabilidade
Existem variedades bidimensionais que n˜ao possuem um modelo em IR3, isto ´e, n˜ao podem ser construidas no espa¸co tridimensional e, assim, n˜ao representam a fronteira de conjunto algum regularizado e limitado. Por exemplo, a garrafa de Klein, representada pelo modelo plano da figura (3.5), ´e uma tal superf´ıcie. Estas variedades n˜ao realiz´aveis podem ser distinguidas das
e1 e1 e2 e2 6 -6 (a) (b)
Figura 3.5: A garrafa de Klein. realiz´aveis pelo conceito de orientabilidade:
Defini¸c˜ao 3.5.2 (Regra de M¨oebius) Um modelo plano ´e orient´avel se as dire¸c˜oes de seus pol´ıgonos podem ser escolhidas de modo que para cada par de arestas identificadas, uma aresta ocorre em sua orienta¸c˜ao positiva na dire¸c˜ao escolhida para seu pol´ıgono, e a outra em sua dire¸c˜ao negativa.
No que se segue, estaremos interessados em modelos planos orient´aveis somente quando eles correspondem com superf´ıcies que podem ser realizadas em IR3, isto ´e, que podem formar a fronteira de conjuntos regularizados e limitados. Como pode ser visto da defini¸c˜ao acima, para garantir que um modelo plano seja realiz´avel ´e suficiente que todos os pol´ıgonos estejam
con-sistentemente orientados (ou seja, todos os pol´ıgonos esteja orientados, digamos, no sentido dos
ponteiros do rel´ogio exceto o “pol´ıgono infinito exterior” que ´e orientado na dire¸c˜ao contr´aria). Intuitivamente, modelos planos realiz´aveis podem ser desenhados sobre um conjunto regu-larizado e limitado sem se cruzar as arestas. Uma maneira mais rigorosa de se expressar isto
´e observar que pontos e abertos do modelo plano podem ser aplicados em pontos e abertos de um conjunto regularizado e limitado atrav´es de uma aplica¸c˜ao cont´ınua. Na pr´atica, preferimos as aplica¸c˜oes que podem ser representadas atribuindo-se informa¸c˜oes geom´etricas (tais como va-lores das coordenadas, equa¸c˜oes das curvas e equa¸c˜oes das superf´ıcies) para v´ertices, arestas e pol´ıgonos do modelo plano.
3.6
A caracter´ıstica de Euler
Considere o cubo da figura (3.6)−(a). Ele tem um total de f = 6 faces, e = 12 arestas e v = 8 v´ertices (onde v´ertices e arestas identificadas contam como um). Observe que o modelo plano inclui o “pol´ıgono infinito exterior” e que todas as arestas est˜ao identificadas.
Claramente, a mesma superf´ıcie podem ser modelada em termos do modelo modificado (b), obtido trocando-se uma face quadrada de (a) por dois triˆangulos. O novo modelo possui uma face e uma aresta adicionais, ou um novo total de f = 7 faces e e = 13 arestas.
Os dois modelos planos representam um mesmo objeto, a saber, uma superf´ıcie topologica-mente equivalente a esfera. O seguinte teorema fornece uma propriedade fundamental relacionada com estas divis˜oes.
Teorema 3.6.1 Seja S uma superf´ıcie dada como um modelo plano e sejam v, e, f o n´umero de v´ertices, arestas e faces no modelo plano. Ent˜ao a soma v− e + f ´e uma constante que n˜ao depende da maneira na qual S foi subidividada a fim de formar o modelo plano. Esta constante ´
e denominada a caracter´ıstica de Euler e ´e denotada por χ(S).
Para nossos prop´ositos, este teorema de invariˆancia ´e um dos resultados centrais em topologia alg´ebrica. Sua demonstra¸c˜ao est´a fora do escopo destas notas mas ´e f´acil verificar sua validade em exemplos: para o cubo original temos
χ = v− e + f = 8 − 12 + 6 = 2
e, depois da modifica¸c˜ao,
χ = v− e + f = 8− 13 + 7 = 2
como esperado. N˜ao importa como fa¸camos a subidivs˜ao de um modelo plano, a caracter´ıstica de Euler permanece a mesma.
3.6.1
Os n´
umeros de Betti
A teoria de homologia nos diz que a caracter´ıstica de Euler pode ser expressa como
χ = h0− h1+ h2 (3.1)
onde h0, h1 e h2 s˜ao denominados os n´umeros de Betti do modelo plano. A equa¸c˜ao (3.1) ´e denominada f´ormula de Euler-Poincar´e.
Os n´umeros de Betti podem ser calculados atrav´es de t´ecnicas de teoria de grupos; contudo, isto est´a al´em do escopo de nossos interesses. Ao inv´es disto, vamos elaborar sobre o significado
(a) (b) Figura 3.6: Modelos de um cubo.
topol´ogico dos n´umeros de Betti. O segundo n´umero de Betti h2 revela a orientabilidade da superf´ıcie e ´e igual a h0 para os tipos de superf´ıcies que estamos interessados.
Uma superf´ıcie arbitr´aria ´e sempre a uni˜ao de um n´umero de pe¸cas conexas denominadas
componentes. O n´umero de Betti h0 representa justamente esta quantidade de componentes conexas. Assim, para o cubo, h0 = 1 enquanto que para o conjunto de seis bolas de tˆenis, h0 = 6. O primeiro n´umero de Betti h1 ´e denominado o n´umero de conectividade da superf´ıcie. Ele
diz o maior n´umero poss´ıvel de curvas fechadas que podem ser desenhadas sobre a superf´ıcie sem separ´a-la em duas ou mais partes. Para o cubo (ou qualquer curva topologicamente equivalente a ele) h1 = 0 porque toda curva fechada corta sua superf´ıcie em dois peda¸cos. Mais intuitivamente,
h1 representa duas vezes o n´umero de “buracos” no objeto. Uma rosquinha possui um buraco e para ela h1 = 2. Assim, a caracter´ıstica de Euler de uma rosquinha (ou de um copo de caf´e) ´e
χ = 1− 2 + 1 = 0.
O teorema de invariˆancia pode ser generalizado para os n´umeros de Betti. Isto ´e, n˜ao importa como uma superf´ıcie seja dividida para formar um modelo plano, os n´umeros de Betti (e todas as caracter´ısticas topol´ogicas associadas a eles) continuam invariantes. Este fato ser´a de interesse futuro e, para referˆencia, vamos enunci´a-lo como um teorema:
Teorema 3.6.2 Seja S uma superf´ıcie dada como um modelo plano. Ent˜ao os n´umeros de Betti h0, h1 e h2 associados ao modelo s˜ao constantes, independentes da maneira que S foi subidividida a fim de formar o modelo plano.
No que se segue, usaremos uma nota¸c˜ao mais conveniente para a f´ormula de Euler-Poincar´e. Denotaremos por s o n´umero de superf´ıcies conexas ou “cascas” dado por h0. Analogamente,
h, o genus da superf´ıcie (ou a soma dos genus de todas as componentes do modelo) ´e usado para denotar o n´umero de buracos e ´e definido por h1/2. Com esta nota¸c˜ao, a f´ormula de Euler-Poincar´e pode ser escrita em termos de vari´aveis mais familiares como
v− e + f = 2(s − h). (3.2)
3.7
Superf´ıcies com bordo
Como vimos nas se¸c˜oes precedentes, variedades bidimensionais orient´aveis coincidem com o con-ceito informal de “superf´ıcies f´ısicas sem bordo’. Algumas vezes, contudo, gostar´ıamos de lidar tamb´em com superf´ıcies que n˜ao necessariamente delimitam um s´olido.
Este ´e o caso, por exemplo, da superf´ıcie cil´ındrica ilustrada na figura (3.2). Seu modelo plano pode ser caracterizado por algumas arestas que n˜ao foram identificadas. Estas arestas formam o bordo da superf´ıcie da´ı o termo superf´ıcies com bordo.
Superf´ıcies com bordo podem ser pensadas como criadas de suas vers˜oes sem bordo cortando-se fora alguns pol´ıgonos. Por exemplo, um cilindro ´e criado removendo-se dois discos de uma esfera. Come¸camos com um modelo plano de uma esfera em (a) que ´e modificado removendo-se dois pol´ıgonos resultando no modelo do cilindro.
Usando esta ferramenta mental, a teoria de superf´ıcies sem bordo pode ser facilmente es-tendida para superf´ıcies com bordo. Por exemplo, para calcular a caracter´ıstica de Euler de
uma superf´ıcie com b componentes de bordo, procedemos adicionando-se b novos pol´ıgonos ao seu modelo plano de modo a formar uma superf´ıcie sem bordo. Claramente, a caracter´ıstica de Euler da superf´ıcie emendada ´e
χ = v− e + f + b.
Assim, para uma superf´ıcie com b componentes de bordo, a f´ormula de Euler-Poincar´e (3.2) pode ser escrita como
v− e + f = 2(s − h) − b. (3.3)
3.8
Dualidade
O dual de uma grafo planar ´e construido atribuindo-se um v´ertice dual para cada pol´ıgono do grafo original e unindo-se cada par de v´ertices duais com uma aresta dual se os correspondentes pol´ıgonos originais compartilhavam uma aresta (possivelmente atrav´es de uma identifica¸c˜ao). Desta maneira, pol´ıgonos duais est˜ao em correspondˆencia com os v´ertices originais.
Usando este procedimento, ´e f´acil converter um modelo plano de uma superf´ıcie em seu modelo plano dual. Um exemplo de um modelo plano e seu dual ´e dado na figura (3.7). Observe que o modelo dual (b) incluir o “pol´ıgono infinito exterior” v1.
(a) (b)
Figura 3.7: Um modelo plano e seu dual.
Note que pol´ıgonos e arestas do modelo plano dual est˜ao orientados. Para explicar como a orienta¸c˜ao do modelo plano dual ´e escolhida, vamos assumir que o modelo original est´a conve-nientemente orientado. Primeiro, usamos a conven¸c˜ao de que cada aresta dual est´a orientada na dire¸c˜ao do v´ertice dual que corresponde ao pol´ıgono original na qual a aresta ocorre em sua orienta¸c˜ao positiva. Isto determina de maneira ´unica a orienta¸c˜ao de cada aresta dual. Dire¸c˜oes dos pol´ıgonos duais s˜ao escolhidas pela seguinte regra:
Suponha que v, e, v∗ e e∗ denotam um v´ertice original, uma aresta adjacente a ele, o pol´ıgono dual correspondente a v e o dual de e, respectivamente. Se v ´e o ponto final de e, a orienta¸c˜ao de v∗ ´e escolhida de modo que e∗ ´e percorrida no seu sentido positivo, caso contr´ario, a orienta¸c˜ao oposta ´e escolhida.
Sob esta regra, a orienta¸c˜ao dos pol´ıgonos duais ser´a consistente. Mais ainda, o dual de um modelo dua ser´a idˆentico ao modelo original. Definimos a orienta¸c˜ao c´ıclida das arestas em torno de um v´ertice como a orienta¸c˜ao correspondente as arestas duais no pol´ıgono dual do v´ertice. Note ainda que o dual ´e uma subdivis˜ao de superf´ıcie porque cada uma de suas arestas est´a identificada com exatamente uma outra.
Nosso interesse em dualidade deve-se ao seguinte:
Lema 3.8.1 Todas as propriedades topol´ogicas de um modelo plano s˜ao preservadas em seu dual.
Em particular, os n´umeros de Betti e a caracter´ıstica de Euler χ de um modelo plano e seu dual s˜ao iguais.
3.9
Resumo
Podemos resumir o longo desenvolvimento feito acima como se segue: a superf´ıcie de um s´olido pode ser rigorosamente modelada em termos de um grafo planar com uma topologia especial. Baseado no grafo podemos deduzir propriedades topol´ogicas da superf´ıcie tais como orientabili-dade, conectividade e o n´umero de “buracos”. Tais propriedades est˜ao compactamente expressas na f´ormula de Euler-Poincar´e.
Naturalmente, para os prop´ositos de modelagem de s´olidos, nosso interesse primeiro ´e o de modelos planos realiz´aveis, isto ´e, modelos que podem ser colocados como bordo de um conjunto regularizado limitado. Como veremos posteriormente, a teoria aqui desenvolvida nos permitir´a derivar opera¸c˜oes de manipula¸c˜ao sobre modelos planos que sempre resultar˜ao em representa¸c˜oes realiz´aveis sendo geral o suficiente para incluir todos modelos de interesse.