notas de aula de um curso de modelagem de solidos´ em ... · notas de aula de um curso de...

72
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¸ oes que fiz durante a disciplina de Modelagem de S´ olidos no programa de Doutorado em Matem´atica da PUC-Rio em 1994. Por favor, envie suas sugest˜oes, corre¸c˜ oes e cr´ ıticas para [email protected]ff.br.

Upload: dinhkien

Post on 12-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Notas de Aula deUm Curso de Modelagem de Solidos

em Computacao Grafica

Humberto Jose Bortolossi

Universidade Federal Fluminense

VERSAO 1.1

2 de fevereiro de 2017

Essas sao anotacoes que fiz durante a disciplina de Modelagem de Solidos no programa deDoutorado em Matematica da PUC-Rio em 1994.

Por favor, envie suas sugestoes, correcoes e crıticas para [email protected].

Sumario

1 Modelos de decomposicao 61.1 Nıveis de abstracao em modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Solidos construtıveis e nao-construtıveis . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Propriedades de modelos de representacao . . . . . . . . . . . . . . . . . . . . . . 71.4 Classificacao de modelos de solidos . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.1 Modelos de decomposicao . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4.2 Modelos construtivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.4.3 Modelos de contorno (boundary models) . . . . . . . . . . . . . . . . . . . . 8

1.5 Modelos de decomposicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.1 Enumeracao exaustiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.2 Cell decompositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.5.3 Octree representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Modelos construtivos 152.1 Modelos half-spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1.1 Half-spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.2 Operacoes booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.1.3 Representacao de modelos half-spaces . . . . . . . . . . . . . . . . . . . . . 162.1.4 Propriedades dos modelos half-spaces . . . . . . . . . . . . . . . . . . . . . 17

2.2 Constructive Solid Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.1 Representacao de modelos CSG . . . . . . . . . . . . . . . . . . . . . . . . 182.2.2 Algoritmos para modelos CSG . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.3 Propriedades de modelos CSG . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Classificacoes de pertinencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.1 Propagacao para baixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.3.2 Propagacao para cima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3.3 Vizinhancas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 Modelos baseados em superfıcies 253.1 Variedades bidimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2 Limitacoes de modelos em variedades . . . . . . . . . . . . . . . . . . . . . . . . . 253.3 Modelos planos de variedades bidimensionais . . . . . . . . . . . . . . . . . . . . . 263.4 Definicao formal de modelos planos . . . . . . . . . . . . . . . . . . . . . . . . . . 283.5 Modelos planos realizaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5.1 Subdivisoes de uma superfıcie . . . . . . . . . . . . . . . . . . . . . . . . . 30

2

3.5.2 Orientabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.6 A caracterıstica de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.6.1 Os numeros de Betti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.7 Superfıcies com bordo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.8 Dualidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.9 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4 Modelos de Contorno 374.1 Conceitos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Estrutura de dados em modelos de contorno . . . . . . . . . . . . . . . . . . . . . 38

4.2.1 Modelos de contorno baseados em polıgonos . . . . . . . . . . . . . . . . . 404.2.2 Modelos de contorno baseados em vertices . . . . . . . . . . . . . . . . . . 404.2.3 Modelos de contorno baseados em arestas . . . . . . . . . . . . . . . . . . . 414.2.4 Faces com varias curvas de bordo . . . . . . . . . . . . . . . . . . . . . . . 42

4.3 Validade de modelos de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.4 Descricao de modelos de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.4.1 Conversao de modelos CSG . . . . . . . . . . . . . . . . . . . . . . . . . . 474.4.2 Desenhos em dimensao dois e meio . . . . . . . . . . . . . . . . . . . . . . 484.4.3 Modificacoes locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.5 Algoritmos para modelos de contorno . . . . . . . . . . . . . . . . . . . . . . . . . 504.5.1 Visualizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.5.2 Propriedades integrais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.6 Propriedades de modelos de contorno . . . . . . . . . . . . . . . . . . . . . . . . . 53

5 Operadores de Euler 555.1 Manipulacao de modelos planos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.1.1 Operacoes topologicas locais . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1.2 Operacoes topologicas globais . . . . . . . . . . . . . . . . . . . . . . . . . 575.1.3 Consistencia das operacoes sobre modelos planos . . . . . . . . . . . . . . . 59

5.2 Manipulacao de modelos de contorno . . . . . . . . . . . . . . . . . . . . . . . . . 605.2.1 Notacoes e convencoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.2.2 Primitivas esqueleticas: MVFS e KVFS . . . . . . . . . . . . . . . . . . . . 615.2.3 Manipulacoes locais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.2.4 Manipulacoes globais: KFMRH, MFKRH . . . . . . . . . . . . . . . . . . 64

5.3 Um exemplo dos operadores de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 655.4 Propriedades dos operadores de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4.1 A formula de Euler-Poincare revisitada . . . . . . . . . . . . . . . . . . . . 685.4.2 Propriedades algebricas dos operadores de Euler . . . . . . . . . . . . . . . 685.4.3 Poder de descricao dos operadores de Euler . . . . . . . . . . . . . . . . . . 71

3

Lista de Figuras

1.1 Solidos (a) construtıvel e (b) nao-construtıvel. . . . . . . . . . . . . . . . . . . . . 71.2 Um modelo octree. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3 Esquema representativo para a decomposicao octree. . . . . . . . . . . . . . . . . 12

2.1 Modelo half-space de um cilindro finito. . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Tres colecoes de primitivas CSG. . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3 Uma operacao booleana nao regular. . . . . . . . . . . . . . . . . . . . . . . . . . 212.4 Ambiguidade no caso “on-on”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1 Solidos cujas superfıcies nao sao variedades topologicas. . . . . . . . . . . . . . . . 273.2 Uma superfıcie cilındrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.3 Outras superfıcies: (a) esfera, (b) toro e (c) faixa de Mobius. . . . . . . . . . . . . 293.4 Modelos planos de uma piramide. . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.5 A garrafa de Klein. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.6 Modelos de um cubo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.7 Um modelo plano e seu dual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1 Definicao de uma face. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 Constituintes basicos de modelos de contorno. . . . . . . . . . . . . . . . . . . . . 394.3 Um objeto exemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.4 Um modelo de contorno baseado em vertices. . . . . . . . . . . . . . . . . . . . . . 404.5 Um modelo de contorno baseado em arestas. . . . . . . . . . . . . . . . . . . . . . 414.6 A estrutura de dados winged-edge. . . . . . . . . . . . . . . . . . . . . . . . . . . 434.7 A estrutura de dados winged-edge completa. . . . . . . . . . . . . . . . . . . . . . 444.8 Objeto com faces nao simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.9 Modelos de contorno invalidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.10 Um objeto com BR nao conveniente. . . . . . . . . . . . . . . . . . . . . . . . . . 474.11 Varredura de faces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.12 Operacoes booleanas em perfis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.13 Modificacoes locais em modelos de contorno. . . . . . . . . . . . . . . . . . . . . . 51

5.1 A operacao de quebra de um vertice. . . . . . . . . . . . . . . . . . . . . . . . . . 565.2 Soma conexa de dois modelos planos. . . . . . . . . . . . . . . . . . . . . . . . . . 585.3 Soma conexa aplicada a uma unica componente. . . . . . . . . . . . . . . . . . . . 585.4 O operador MVFS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.5 O operador MEV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4

5.6 O operador MEF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.7 O operador KEMR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.8 Exemplo dos operadores de Euler. . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.8 Exemplo dos operadores de Euler (continuacao). . . . . . . . . . . . . . . . . . . . 67

5

Capıtulo 1

Modelos de decomposicao

A modelagem de solidos e um ramo da modelagem geometrica cujo principal objetivo e a demanter a aplicabilidade geral de seus modelos. Ela insiste em criar somente representacoes“completas” de objetos fısicos, isto e, representacoes nas quais se e possıvel responder a questoesgeometricas arbitrarias de uma maneira algorıtmica.

1.1 Nıveis de abstracao em modelagem

Podemos distinguir quatro diferentes nıveis de abstracao em modelagem:

(1) Modelo fısico: Neste nıvel descrevemos e caracterizamos objetos reais de nosso mundo tri-dimensional atraves de suas propriedades fısicas que, por suas vez, sao percebidas atravesde nossos sentidos.

(2) Modelo matematico: A fim de termos alguma esperanca de modelar objetos no computador,devemos adotar uma idealizacao adequada dos objetos reais que estamos interessados emmodelar. Para conseguir isto, utilizamos a linguagem matematica (teoria de conjuntos etopologia algebrica) para descrever de maneira rigorosa os objetos de interesse.

(3) Modelo de representacao: Depois de definirmos de maneira rigorosa a classe de objetosmatematicos em que estamos interessados o passo seguinte e a de associar ao modelo ma-tematico uma representacao apropriada para manuseio em computador.

(4) Modelo de implementacao: Neste ultimo nıvel adaptamos o modelo de representacao deacordo com os recursos de implementacao disponıveis (em geral, caracterısticas proprias dalinguagem escolhida, a utilizacao ou nao de processamento paralelo, etc.).

1.2 Solidos construtıveis e nao-construtıveis

Como vimos acima, a fim de efetuarmos a modelagem de objetos em computador faz-se necessariauma idealizacao adequada dos objetos fısicos tridimensionais de interesse. Esta idealizacao e feitacom objetos matematicos que podem ser definidos atraves da teoria de conjuntos e topologiaalgebrica. Caraterizaremos aqui os objetos matematicos que serao adequados ao processo demodelagem em nosso caso.

6

Definicao 1.2.1 Um solido e um conjunto limitado e fechado do espaco vetorial IR3

Definicao 1.2.2 Um objeto rıgido e uma classe de equivalencia de conjunto de pontos de IR3

formada pela seguinte relacao de equivalencia: A e equivalente a B (A ∼ B) se, e somente se,existe um movimento rıgido (composicao de translacoes e rotacoes) levando A em B.

Definicao 1.2.3 A regularizacao 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 quesatisfazem r(A) = A sao denominados conjuntos regulares.

Definicao 1.2.4 Uma variedade bidimensionalM e um espaco topologico onde todo ponto possuiuma vizinhanca que e topologicamente equivalente a um disco aberto de IR2.

Nossos objetos matematicos de interesse sao solidos rıgidos regularizados cujo bordo constituiuma variedade bidimensional. Tais objetos matematicos sao denominados solidos construtıveis.

(a) (b)

Figura 1.1: Solidos (a) construtıvel e (b) nao-construtıvel.

1.3 Propriedades de modelos de representacao

As seguintes propriedades orientam na analise dos diversos modelos de representacao:

(1) Poder de expressao: Quais objetos podem ser representados? E possıvel ampliar estedomınio? Um aspecto do poder de expressao e a precisao do esquema de representacao:quao precisamente podem ser representados objetos complicados?

(2) Validade: Todas as representacoes admissıveis sao validas? Um esquema com esta propri-edade (desejavel) e denominado sintaticamente valido quando ela forca a validade de todosos solidos que obedecam suas regras de definicao.

(3) Ambiguidade e unicidade: Os modelos de representacao validos designam um unicosolido? Solidos possuem mais de uma representacao valida?

(4) Linguagem de descricao: Que tipo de linguagens de descricao de solidos sao suportadasem um sistema de modelamento baseado no esquema de representacao em questao? Elas saoinerentes, isto e, diretamente baseadas nas representacoes do esquema ou elas sao baseadasem uma conversao de outro esquema?

7

(5) Concisao: Quao grandes (em termos de armazenamento computacional) sao as repre-sentacoes dos solidos de interesse? (Esta propriedade esta frequentemente em contrapontocom a precisao da representacao).

(6) Operacoes fechadas: As operacoes de manipulacao e descricao dos solidos preservam avalidade das representacoes? Quao gerais sao as manipulacoes que sao suportadas peloesquema de representacao?

(7) Aplicabilidade e custo computacional: Que tipo de algoritmos podem ser escritos paraas representacoes do esquema? Que tipo de complexidades computacionais estao envolvidas?As representacoes do esquema sao apropriadas para que tipo de aplicacoes? Naturalmente,estamos particularmente interessados em solucoes inerentes ao esquema de representacao,isto e, que nao envolvam conversao em um esquema de representacao totalmente diferente.

1.4 Classificacao de modelos de solidos

1.4.1 Modelos de decomposicao

Descrevem os solidos atraves de uma unica operacao de colagem (gluing) de primitivas basicas.O tipo de primitivas basicas usadas gera variados modelos de decomposicao.

1.4.2 Modelos construtivos

Descrevem os solidos atraves de operadores de construcao aplicados as primitivas basicas. Osoperadores de construcao nao se restringem somente a operacao de colagem (gluing).

1.4.3 Modelos de contorno (boundary models)

Descrevem os solidos atraves de seus contornos. Um solido e uma colecao de faces, uma face euma colecao de arestas; uma aresta e representada por dois vertices.

1.5 Modelos de decomposicao

1.5.1 Enumeracao exaustiva

Solidos podem ser considerados como conjuntos de pontos. Evidentemente nao podemos enu-merar todos os pontos que pertencam a um solido mas certamente podemos enumerar cubos(de tamanho especificado) que estao contidos (total ou parcialmente) no solido. Os cubos saotomados de tamanho uniforme de maneira que eles nao se interceptem, isto e, eles formam umasubdivisao regular do espaco. A representacao resultante e denominada enumeracao exaustiva.

Destacamos suas propriedades:

(1) Poder de expressao: Enumeracao exaustiva e obviamente aproximativa. Contudo, oesquema e geral: todo tipo de objeto pode ser representado em enumeracao exaustiva.

8

(2) Validade: A validade da enumeracao exaustiva depende da iteracao geometrica de cubosindividuais. Se apenas solidos construtıveis sao admitidos, nem toda representacao e valida(por exemplo, dois cubos que se interceptam apenas em um vertice).

(3) Ambiguidade e unicidade: Todas representacoes validas nao sao ambıguas. Existetambem unicidade: fixando-se o espaco de interesse e a resolucao, todo solido possui apenasuma representacao.

(4) Linguagem de descricao: Em aplicacoes de processamento de imagens, enumeracoesexaustivas sao geralmente criadas atraves de um scanner. No contexto de modelagem desolidos, elas sao geradas atraves de uma conversao de outros modelos.

(5) Concisao: Enumeracao exaustiva tende a utilizar grande quantidade de armazenamentocomputacional: uma resolucao de 2563 utiliza 16 milhoes de bits de armazenagem.

(6) Operacoes fechadas: Enumeracoes exaustivas suportam muitos algoritmos fechados. E-xemplos sao dadas pelas operacoes booleanas.

(7) Aplicabilidade e custo computacional: Algoritmos para este esquema tendem a serextremamente simples. Enumeracao exaustiva e largamente utilizada em processamento di-gital de imagens. Tambem, ela e utilizada como um esquema auxiliar para acelerar operacoesde outras representacoes.

1.5.2 Cell decompositions

Um tratramento para se resolver os problemas apresentados em enumeracao exaustiva e man-tendo-se suas propriedades e a de se utilizar outros tipos de elementos basicos que nao sejamapenas cubos. Estes esquemas sao denominados Cell Decompositions.

Destacamos suas propriedades:

(1) Poder de expressao: O espaco de modelagem e geral na presenca de celulas com superfıciesnas quais o grau nao ultrapassa o grau das celulas.

(2) Validade: A validade e difıcil de se estabelecer. Para se verificar a validade, um teste deintersecao para cada par de celulas e necessario.

(3) Ambiguidade e unicidade: Uma decomposicao valida determina completamente umsolido. Nao existe unicidade.

(4) Linguagem de descricao: Em geral, e muito difıcil criar representacoes neste esquemapor um mecanismo direto. Usualmente, cell decompositions sao criadas pela conversao deoutras representacoes mais convenientes.

(5) Concisao: Cell decompositions sao relativamente concisas. As representacoes usuais con-sistem de uma lista de nos, cada uma sendo um ponto tridimensional indexado, seguido poruma lista de elementos que por sua vez possuem um codigo e uma lista de numeros cujainterpretacao depende do codigo.

9

(6) Operacoes fechadas: Em geral, cell decompositions sao apenas usadas como entrada paraalgoritmos que passivamente examinam o modelo sem modifica-lo. Algoritmos fechados naotriviais (como operacoes booleanas) sao desconhecidos ou computacionalmente intrataveis.

(7) Aplicabilidade e custo computacional: Cell decompositions sao indispensaveis comorepresentacao de entrada para algoritmos computacionais. Metodo de elementos finitosfornece um exemplo disto.

1.5.3 Octree representation

Octrees fornecem exemplos tıpicos de esquemas adaptativos de subdivisao do espaco. A repre-sentacao octree usa uma subdivisao recursiva do espaco de interesse em oito octantes que estaoarranjados em uma arvore de 8 ramos.

Usualmente uma octree e considerado como estando localizada em torno da origem de seusistema de coordenadas xyz, com seu primeiro nıvel de octantes correspondendo aos octantes doespaco, e em particular o octante 3 sendo o octante positivo x, y, z > 0. Entao se faz necessariorepresentar o presente espaco de interesse separadamente em termos de uma transformacao ade-quada.

Cada node (no) de uma octree consiste de um code e oito ponteiros para oito children,numerados de 0 a 7. Se code = full, a parte do espaco representada pelo node esta completa-mente preenchido pelo solido e os ponteiros de 0 a 7 sao todos NULL e, portanto, nao existemramos. Se code = empty, a parte do espaco representada esta vazia e, novamente, nao existemramos. A terceira possibilidade e a de que code = partial e isto corresponde ao fato do espacoestar parcialmente preenchido e parcialmente vazio. Neste caso, os oitos ponteiros apontam paraoito children que correspondem a uma subdivisao regular do node em questao.

Construcao de representacoes octree

No contexto de modelagem de solidos, octrees sao ordinariamente construıdas a partir de pri-mitivas solidas. Para cada tipo de primitiva, um procedimento de classificacao entre uma copiada primitiva e um no arbitrario do octree se faz necessario. A classificacao deve ser capaz dedistinguir entre os seguintes tres casos:

Caso 1: O no considerado esta completamento no exterior da primitiva.

Caso 2: O no considerado esta completamento no interios da primitiva.

Caso 3: O no esta 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 demodelos geometricos.

10

3 3

32

0

1 1

5

7

76

2

� � � � � � � � � �

� � �� � � �

� � � � � �

(a) (b)�

����x

y

(c)

����z

Figura 1.2: Um modelo octree.

11

octree

�box

root

�code

child[0]

...

child[7]

loc

boxmin

max

loccoord

depth

xyz

xyz

�� xyz

Figura 1.3: Esquema representativo para a decomposicao octree.

(2) Operacoes booleanas que tomam duas octrees (com mesmo espaco de interesse) como ar-gumentos e que calculam uma nova octree resultante da uniao, intersecao ou diferencadas mesmas. A implementacao de operacoes booleanas leva a algortimos que percorremsincronicamente as arvores de cada objeto, fazendo uma comparacao adequada entre nosrespectivos. Por exemplo, no processo de intersecao de duas octrees, temos os seguintescasos:

(a) Os nos n1 e n2 sao folhas. Nesta situacao, o no correspondente a octree resultante efull se n1 e n2 sao full; caso contrario, ele e empty.

(b) Os nos n1 ou n2 sao folhas (mas nao simultaneamente). Nesta situacao, se o no que euma folha for full, a sub-arvore do no que nao e uma folha e copiada para a octreeresultante. Caso contrario, o no da arvore resultante e empty.

(c) Os nos n1 e n2 nao sao folhas. Nesta situacao, o algoritmo e aplicado recursivamentea sub-arvore, como acima.

(3) Operacoes geometricas que tomam uma octree e calculam uma nova para modelar o re-sultado de translacao, rotacao ou homotetia do objeto fornecido. Alguns destes problemaslevam a algoritmos nao intuitivos e complicados. Por exemplo, a translacao de uma octreee uma operacao relativamente difıcil.

(4) Procedimentos de analise que calculam propriedades tais como volume ou area de superfıciede uma octree.

(5) Geradores graficos que criam uma imagem grafica do objeto modelado pela octree.

Propriedades de Octrees

As propriedades de representacoes octrees sao similares as de enumeracao exaustiva, com algumasexcecoes notaveis.

12

(1) Poder de expressao: Como em enumeracao exaustiva, octrees sao representacoes aproxi-mativas e modelam de maneira exata apenas objetos muito particulares.

(2) Validade: Nem toda representacao e valida se adotarmos solidos construtıveis como osunicos objetos admissıveis.

(3) Ambiguidade e unicidade: Fixando-se uma resolucao, octrees representam um solidosem ambiguidade. A representacao tambem e unica (novamente fixando-se a resolucao):um objeto possui apenas uma unica representacao octree compactada (algoritmos tais comooperacoes booleanas podem criar octrees com nos desnecessarios (isto e, um no interno noqual os oito children sao todos full)).

(4) Linguagem de descricao: As mesmas observacoes feitas para enumeracao exaustiva seaplicam aqui, isto e, octrees sao usualmente formadas por conversao de outras representacoes.

(5) Concisao: Em geral, o numero de nos de uma representacao octree de um objeto e pro-porcional a sua area de superfıcie. Desta maneira, modelos octree nao sao tao dispendiososcomo representacoes exaustivas mas mesmo assim utilizam uma grande quantidade de ar-mazenamento.

(6) Operacoes fechadas: Translacoes e rotacoes sao exemplos de operacoes fechadas. Ope-racoes booleanas podem gerar representacoes nao validas (isto e, podem gerar objetos quenao sao construtıveis).

(7) Aplicabilidade e custo computacional: Muitos algortimos para octree podem ser cons-truıdos utilizando-se uma procura linear na arvore e operacoes relativamente simples emcada node. Para estes algoritmos, as mesmas observacos feitas para enumeracao exaustivase aplicam.

Octrees lineares

Embora octrees utilizem uma quantidade menor de armazenamnto se comparadas com enu-meracao exaustiva, esta e ainda muito grande. Isto tem levado pesquisadores a investigar possi-bilidades de se compactar representacoes octrees e de se substituir uma representacao explıcita(em termos da arvore) por representacoes alternativas como por exemplo uma estrutura de dadoslinear. Evidentemente, tais representacoes sao tambem convenientes para de armazenar octreesem dispositivos externos.

Os octantes de uma octree seguem uma ordenacao (de 0 a 7). Estes numeros podem ser usadospara se contruir um endereco para cada no de uma octree (com excecao da raiz). Claramente, oendereco de um no de nıvel i e uma sequencia de i dıgitos de 0 a 7. Um sımbolo especial pode serincluıdo para se indicar que os nıveis subsequentes ao nıvel demarcado pela posicao do sımbolo(inclusive) e dispensavel na representacao do endereco.

A octree linear de Gargantini e baseada nestas observacoes. Em seu esquema, uma octreelinear e simplesmente uma lista ordenada de enderecos para todos os nos full. Assim, a octreelinear correspondente a da figura 1.2 e simplesmente a lista

{22, 23, 26, 27, 3X, 70, 71, 72, 73, 75, 77}

13

onde X e o sımbolo utilizado para representar que o endereco do no termina no nıvel anterior.Uma outra representacao linear de uma octree e a assim denominada representacao DF.

Ela e construıda percorrendo-se a arvore em uma determinda ordem e armazenando-se certasinformacoes dos nos encontrados. O metodo utiliza o alfabeto “B”, “W” e “(” para se denotarum no full, um no empty e um no partial, respectivamente. Desta maneira, a representacaoDF correspondente a figura 1.2 constituı-se do seguinte:

(WW(WWBBWWBBBWWW(BBBBWBWB

Como o alfabeto possui apenas tres caracteres, dois bits para cada no sao suficientes para acodificacao.

Observamos, finalmente, que muitos algoritmos importantes podem ser realizados utilizando-se somente representacoes lineares (como operacoes booleanas).

14

Capıtulo 2

Modelos construtivos

Os modelos de decomposicao discutidos no trabalho anterior representam solidos como umacolecao basica de elementos combinados com uma operacao de colagem (gluing). Em contraste,modelos construtivos utilizam operacoes mais poderosas.

2.1 Modelos half-spaces

Todos modelos construtivos consideram solidos como pontos do IR3. A ideia basica destes modelose a de se comecar a partir de conjuntos suficientemente simples que podem ser representadosdiretamente e modelar outros conjuntos de pontos em termos de combinacoes muito gerais destesconjuntos simples. Os assim denominados modelos half-spaces aplicam este tratamento de umamaneira direta.

2.1.1 Half-spaces

A todo conjunto de pontos A podemos associar uma funcao caracterıstica

gA: IR3 → {0, 1}

que diz se um ponto x ∈ IR3 pertence ou nao a A. Em outras palavras, a funcao gA deve satisfazer

gA(x) = 1 ⇒ x ∈ AgA(x) = 0 ⇒ x �∈ A

Para conjuntos de pontos muito gerais, funcoes caracterısticas nao oferecem muita ajuda porquesuas representacoes seriam tao difıceis quanto as representacoes dos proprios conjuntos. Contudo,para uma interessante classe de conjuntos de pontos, gA pode ser representada em termos de umafuncao real analıtica f de x, y e z definida em todo o IR3. A restricao para funcoes analıticasnos garante a exclusao de certos objetos “patologicos”. Todos os pontos

x = (x, y, z)

tais que f e igual a zero sao considerados como pertencendo ao conjunto de pontos enquanto quef menor do que zero define seu complemento (evidentemente, nao haveria problema algum em

15

se tomar como convencao as desigualdades contrarias). Uma vez que

f(x) = 0

divide todo o espaco em duas partes, os conjuntos de pontos definidos por

f(x) ≥ 0 e f(x) ≤ 0

sao denominados half-spaces. Por exemplo, as funcoes

ax+ by + cz + d ≥ 0x2 + y2 − r2 ≤ 0

definem dois conjuntos de pontos muito uteis, a saber, o half-space planar que consiste de todosos pontos que estao sobre ou dentro do lado positivo do plano ax+ by + c+ d = 0 e o half-spacecilındrico que consiste de todos os pontos que estao sobre ou dentro de um cilindro infinito comeixo de revolucao dado pelo eixo z e raio r.

Outros half-spaces de interesse incluem as superfıcies quadricas tais como a esfera e cones, ecertas superfıcies de maior ordem como o toro. Observe que esta colecao inclui tanto half-spacesilimitados (como o caso do cilindro infinito acima) como half-spaces limitados (como o caso daesfera x2 + y2 + z2 − r2 ≤ 0).

2.1.2 Operacoes booleanas

Half-spaces fornecem as primitivas basicas de modelamento. Como half-spaces sao conjuntosde pontos, os procedimentos naturais de modelagem para modelos half-spaces sao as operacoesbooleanas de uniao (∪), intersecao (∩) e diferenca (\).

Assim, modelos half-spaces sao construıdos combinando-se instanciamentos de half-spacescom operacoes booleanas. Por exemplo, para se descrever um cilindro finito C de comprimentoh, sao necessarios um half-space cilındrico e dois half-spaces planares, combinados juntos com aoperacao “∩”:

H1 : x2 + y2 − r2 ≤ 0H2 : z ≥ 0H3 : z − h ≤ 0

C = H1 ∩H2 ∩H3

Esta construcao e ilustrada na figura (2.1).Desta maneira, uma espaco de modelagem M de um modelador half-space e a classe de

combinacoes booleanas dos half-spaces disponıveis.

2.1.3 Representacao de modelos half-spaces

Como visto acima, a representacao de um modelo half-space divide-se em duas partes:

(1) Representacao de half-spaces: O procedimento mais comum e o de representar half-spacescomo instanciamentos de half-spaces base em algum sistema conveniente de coordenadas,

16

Figura 2.1: Modelo half-space de um cilindro finito.

utilizando-se para isto, um codigo que descreve o tipo de half-space, uma lista de parametrosque descreve seu tamanho e uma matriz de transformacao que fornece sua localizacao eorientacao.

Como uma alternativa para este tratamento, todos os half-spaces descritos por quadricaspodem ser representados atraves das funcoes f(x) = f(x, y, z) que os definem, isto e, umavez 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

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎣xyz1

⎤⎥⎥⎥⎦

podemos armazenar os 16 coeficientes Aij ou os 10 coeficientes resultantes calculando-se asmultiplicacoes acima.

(2) Representacao de combinacoes booleanas de half-spaces: Uma possibilidade para este tipode representacao resulta do fato que toda expressao booleana pode ser escrita na forma“soma de produtos”, mais especificamente, um solido 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 expressao: O poder de expressao de um modelador half-space e determinadopela selacao dos half-spaces disponıveis. e da generalidade das operacoes presentes para

17

combina-los. Tipicamente, modeladores desta classe incluem half-spaces que sao dados porquadricas (planos, superfıcies cilındricas, conicas, esfericas, etc.) e, em algumas vezes, atemesmo um toro.

(2) Validade: Half-spaces sao conjuntos de pontos nao limitados. Mesmo uma combinacaodeles pode ser ilimitada e, assim, nem todas combinacoes sao solidos validos (se apenasvarieades limitadas sao admitidas).

(3) Ambiguidade e unicidade: Cada combinacao valida de half-spaces determina um solido.Assim, modelos half-spaces nao sao ambıguos. Representacoes half-spaces nao sao unicas.

(4) Linguagem de descricao: Instanciamentos e combinacoes de half-spaces nos levam a umamaneira relativamente simples de se descrever solidos. Com algum esforco, se e tambempossıvel criar uma interface grafica com o usuario.

(5) Concisao: Modelos half-spaces sao relativamente concisos: algumas centenas de half-spacessao usualmente suficientes para modelar partes realısticas adequadamente (dentro das li-mitacoes do espaco de modelagem).

(6) Operacoes fechadas: Nem sempre combinacoes booleanas de half-spaces resultam emum solido admissıvel. Introduziremos mais adiante operacoes booleanas regularizadas paracorrigir este tipo de problema.

(7) Aplicabilidade e custo computacional: Os algoritmos naturais para modelagem com ouso de half-spaces sao os assim denominados algoritmos de classificacao de pertinencia (setmembership 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 facil enten-dimento. Para usuarios finais, contudo, e mais facil operar sobre primitivas limitadas ao invesde half-spaces ilimitados. Observe tambem que combinacoes de half-spaces podem resultar emum conjunto de pontos ilimitado o que confronta nossa nocao de um solido valido. Para evi-tar a geracao de conjuntos ilimitados, a assim denonimada Constructive Solid Geometry (CSG)fornece um maneira de se modelar solidos com o uso de conjunto de conjuntos limitados comoprimitivas.

2.2.1 Representacao de modelos CSG

Representacos CSG sao arvore binarias (ordenadas). Nos intermediarios representam operadoresque podem ser ou movimentos rıgidos ou operacoes booleanas regularizadas (que serao definidasmais adiante) enquanto que nos terminais (folhas) representam as primitivas.

Arvores CSG podem ser definidas como se segue:

〈arvore CSG〉 : : = 〈primitiva〉 |〈arovre CSG〉 〈operac~ao booleana〉 〈arvore CSG〉 |〈arvore CSG〉 〈movimento rıgido〉

18

No esquema acima, <primitiva> e um instanciamento de uma primitiva solida, representadaatraves de um codigo que identifica o tipo da primitiva e uma sequencia de parametros quedetermina suas dimensoes. <movimento rıgido> denota ou uma translacao ou uma rotacao e,finalmente, < operac~ao booleana> e uma das operacoes booleanas ∩, ∪ e \.

Desta maneira, primitivas sao representadas como folhas de uma arvore CSG enquanto quenos interiores representam ou uma operacao booleana ou um movimento rıgido. Segundo esteponto de vista, tais operacoes e movimentos sao interpretados como operando sobre arvores CSG.

Cada primitiva e escolhida de modo a definir um conjunto limitado do IR3. Como o conjuntode operacoes disponıveis nao destroi o fato dos conjuntos serem limitados, modelos CSG sempreproduzirao conjuntos limitados. O facil uso de um modelador CSG depende muito da colecaode primitivas disponıveis. Por exemplo, a figura (2.2) exibe tres colecoes de primitivas. Observecomo a colecao (a) inclui varias arestas para ajudar na modelagem de formas arrendondadasque sao frequentemente necessarias em partes mecanicas. Note que todas as primitivas da figurapodem ser expressas como uma combinacao booleana de half-spaces simples (neste caso, planose cilindros).

O domınio de uma modelador CSG depende da variedade de half-spaces disponıveis em suasprimitivas e dos movimentos rıgidos e operacoes booleanas disponıveis. Observe que apesar dastres colecoes da figura (2.2) possuırem primitivas distintas, todas as tres definem um mesmodomınio.

Operacoes booleanas regularizadas

Algumas combinacoes de primitivas CSG (ou half-spaces) nao constituem variedades constru-tıveis. Considere, por exemplo, o caso da figura (2.3). De acordo com a definicao ordinariade operacoes booleanas, a intersecao dos dois objetos consiste de um objeto retangular maisum segmento de reta. Sobre a otica de caracterizacao de solidos como conjunto de pontos, oproblema do objeto resultante e o de que ele nao e regular: o segmento de reta pendente violaa definicao de regularidade. A fim de evitar tais tipos de objetos, introduzimos a nocao deoperacoes regularizadas.

Definicao 2.2.1 As operacoes booleanas de uniao∗, intersecao∗ e diferenca∗ regularizadas, de-notadas por ∪∗, ∩∗ e \∗, respectivamente, sao 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 operacoes booleanas usuais. i(·) e c(·) denotam asoperacoes topologicas de interior e fecho.

Se primitivas CSG sao escolhidas como conjuntos limitados regulares, as operacoes boolea-nas regularizadas possuem a desejavel propriedade de serem algebricamente fechadas na classede conjuntos limitados regulares. Isto e, garante-se assim que toda arvore CSG constitui umconjunto limitado regular.

19

(a)

(b)

(c)

Figura 2.2: Tres colecoes de primitivas CSG.

20

A ∩B

B

A

Figura 2.3: Uma operacao booleana nao regular.

2.2.2 Algoritmos para modelos CSG

As arvores CSG podem ser vistas como descricoes implıcitas da geometria do solido modeladoque devem ser analizadas, de alguma maneira, a fim de se criar uma saıda grafica ou se efetuarcalculos.

A estrutura da arvore CSG sugere o uso da tecnica “dividir e conquistar” cuja ideia basica e ode dividir o problema em duas partes, recursivamente resolver cada uma delas e unir os resultadosparciais de modo a se obter uma solucao global. A recursao termina quando o problema foisubdividido em partes “primitivas” que permitem uma solucao direta.

Quando aplicado a uma arvore CSG, a maneira natural de se subdividir o problema e ode processar as sub-arvores de cada no interior (que no caso constitui uma operacao booleana)separadamente. A recursao termina nas folhas onde o problema e resolvido para primitivas.Solucoes dos subproblemas sao entao combinadas segundo a operacao booleana em questao.

2.2.3 Propriedades de modelos CSG

Temos:

(1) Poder de expressao: Depende da classe de primitivas (ou half-spaces) disponıveis.

(2) Validade: Toda arvore CSG reprenta um solido admissıvel desde que primitivas validas(isto e, primitivas limitadas) sejam consideradas e apenas operacoes booleanas regularizadassejam aplicadas.

(3) Ambiguidade e unicidade: Toda arvore CSG modela um solido sem ambiguidade. Naoexiste unicidade.

(4) Linguagem de descricao: Usualmente linguagem textual. E possıvel se incluir umainterface grafica em um modelador CSG.

(5) Concisao: Arvores CSG sao, em princıpio, relativamente concisas. Em modeladores prati-cos, elas tendem a crescer quando outras informacoes, que ajudam na eficiencia de operacoesgraficas, sao incluıdas na arvore CSG basica.

21

(6) Operacoes fechadas: Operacoes booleanas regularizadas sao algebricamente fechadas paraarvores CSG.

(7) Aplicabilidade e custo computacional: O poder computacional de algums algoritmosCSG importantes e pobre. Os algoritmos de dividir e conquistar geralmente conduzem aalgoritmos eficintes embora arvores CSG mal balanceadas possam prejudicar a eficiencia detais algoritmos.

2.3 Classificacoes de pertinencia

Os assim denominados algoritmos de classificacao de pertinencia (set membership classificationalgorithms) sao uma classe particularmente util de algoritmos baseados na tecnica de “dividir econquistar”. Em termos gerais, um tal algoritmo age sobre dois conjuntos de pontos, a saber, oconjunto candidato C e o conjunto de referencia R. O algoritmo deve classificar C com relacaoa R formando tres conjuntos CinR, ConR e CoutR representando as partes de C no interior, nafronteira e no exterior de R, respectivamente. Por exemplo, o algoritmo para se classificar umsegmento de reta finito (uma “aresta”) com relacao a uma arvore CSG pode ser visto segundoesta ideia 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, ospontos de E que estao no interior, na fronteira e no exterior de S.

Outros exemplos de classificacao de pertinencia sao dados por classificacao ponto/solido, classi-ficacao face/solido, etc.

2.3.1 Propagacao para baixo

A classificacao ponto/solido e naturalmente implementada como um conjunto de procedimentosrecursivos mas ela pode ser pensada, de uma maneira mais simples, como passando mensagensatraves dos nos da arvore. No inıcio, as coordenadas dos pontos sao enviadas a partir da raiz daarvore. Dali, elas sao propagadas em direcao as folhas, possivelmente alteradas. Em cada folha,as coordenadas finais descrevem o mesmo ponto mas com relacao ao sistema de coordenadaslocais da primitiva que a folha representa.

Na folha, classificamos o ponto como in, on ou out dependendo se o ponto esta no interior,na fronteira ou no exterior da primitiva. Esta classificacao e devolvida para a raiz. Em um nointermediario, os resultados das subarvores sao combinados. Assim, a primeira fase do algoritmopode ser descrita como se segue.

(1) Se o ponto (x, y, z) chega em um no que define uma operacao booleana, entao ele e passadoinalterado para os nos descendentes.

22

(2) Se o ponto (x, y, z) chega em um no que define uma translacao ou rotacao, a translacao ourotacao inversa e aplicada em (x, y, z) fornecendo um novo ponto (x′, y′, z′) que e enviadopara nos descendentes.

(3) Se o ponto (x, y, z) chega em uma folha, entao o ponto e classificado com relacao a primitivae esta classificacao e devolvida para o pai da folha.

2.3.2 Propagacao para cima

Na segunda fase do algoritmo as mensagens contendo a classificacao do ponto devem ser com-binadas segundo as operacoes booleanas que definem os nos intermediarios. Nenhum trabalho erealizado em nos que representam translacoes ou rotacoes. A tabela (2.1) mostra o que deve serfeito para nos que representam uma uniao ou uma intersecao.

∪∗ in on out

in in in inon in on? onout in on out

∩∗ in on out

in in on outon on on? outout out out out

Tabela 2.1: Combinacao de vizinhancas para uniao e intersecao.

2.3.3 Vizinhancas

Implementado desta maneira, o algoritmo estara incorreto. Considere, por exemplo, os exemplosdados na figura (2.4). O problema aqui e a classificacao dos pontos que estao sobre a fronteirada superfıcie da primitiva. Estes pontos podem estar sobre uma regiao da superfıcie da primitivaque permanecem sobre a superfıcie do solido descrito pela arvore, e entao a tabela fornece um re-sultado correto. Se, contudo, o ponto esta em uma regiao da superfıcie que nao esta na superfıcie

A

B

AB

Figura 2.4: Ambiguidade no caso “on-on”.

final do objeto, entao a tabela fornece um resultado incorreto. O que se faz necessario para resol-ver este tipo de problema e o de descrever a geometria local na vizinhanca do ponto. Isto pode

23

ser feito com a informacao adicional da vizinhanca do ponto. Nao entraremos em detalhes sobrea incorporacao de vizinhancas na estrutura de dados para se resolver este tipo de ambiguidade.Sugerimos ao leitor o artigo de Robert Bruce Tilove, Set Membership Classification: A UnifiedApproach to Geometric Intersection Problems, IEEE Transactions on Computers, Volume C-29,numero 10, paginas 874-883.

24

Capıtulo 3

Modelos baseados em superfıcies

Se faz preciso referenciar certas propriedades da superfıcie de um solido a fim de evitar de-terminadas anomalias que ocorrem quando somente do uso de teoria de conjuntos. De fato, eperfeitamente possıvel caracterizar espacos de modelagem apenas atraves das propriedades destassuperfıcies.

A caracterizacao de solidos baseados em suas superfıcies toma a fronteira de um objetosolido. Esta e composta de uma colecao de “faces” que sao “coladas” a fim de formar uma“pele” completa do objeto. Para podermos falar rigorosamente destes procedimentos informaise enunciar explicitamente sobre quais condicoes obtemos um solido satisfazendo nossa nocao de“construtibilidade”, usaremos os conceitos desenvolvidos em outro ramo da topologia, a saber,topologia algebrica.

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)estao no interior de uma regiao “bidimensional” de pontos da superfıcie.

A bidimensionalidade da superfıcie significa que podemos estudar suas propriedades atravesde um modelo plano. Primeiro, definiremos mais abstratamente (e mais rigorosamente) o queentendemos por superfıcie e entao construiremos um modelo simples para ela em termos de umatopologia especial definida no espaco euclidiano IR2.

Definicao 3.1.1 Uma variedade bidimensionalM e um espaco topologico onde todo ponto possuiuma vizinhanca que e topologicamente equivalente a um disco aberto do IR2.

Intuitivamente, um inseto vivendo em M ve em torno de si uma regiao contınua simples. Estanocao pode ser perfeitamente aplicada em nosso caso e o planeta Terra. De fato, a superfıcie deuma esfera e uma variedade bidimensional.

3.2 Limitacoes de modelos em variedades

Seja A um conjunto regularizado e limitado. Se uma variedade bidimensional M e a fronteirade A, ∂(A), sao topologicamente equivalentes, dizemos que A e uma realizacao de M em IR3.

25

Como veremos em breve, a classe de variedades bidimensionais que possuem pelo menos umarealizacao pode ser caracterizada precisamente. Denominaremos tais varieades bidimensionaisde realizaveis.

Infelizmente, nem todos conjuntos regularizados e limitados sao realizacoes de alguma va-riedade bidimensional. A figura (3.1) ilustra alguns destes conjuntos. O problema com todosestes objetos e que suas superfıcies tocam-se em um ponto ou sobre um segmento de curva. Asvizinhancas de tais pontos nao sao discos, como requerido pela definicao (3.1.1). Por exemplo, avizinhanca 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 propositos praticos, objetos como os da figura (3.1) podemser representados indiretamente “ignorando-se” os pontos e segmentos de retas excepcionais.Desta maneira, o objeto da figura (3.1)−(a) seria representado como uma combinacao rıgida deduas componentes.

3.3 Modelos planos de variedades bidimensionais

Para estabelecer condicoes suficientes para que uma variedade seja realizavel necessitaremosde um mecanismo que possa representar todas as variedades bidimensionais de maneira a nospermitir elaborar sobre suas propriedades. Para este proposito, usaremos os modelos planos.

Para ilustrar a ideia basica da representacao vamos considerar primeiro um exemplo simples.A figura (3.2) representa um polıgono de quatro lados enquanto que (b) representa a superfıciecilındrica obtida colando-se em (a) as duas arestas nomeadas com α.

A ideia basica do que se segue e empregar uma figura plana nomeada (como o retanguloem (a)) a fim de elaborarmos sobre as propriedades de uma superfıcie (o cilindro). Isto e feitodefinindo-se uma topologia especial na figura plana.

Na topologia natural do IR2, as vizinhancas de um ponto sao todas discos abertos de algumraio r em torno do ponto. O mesmo ocorre na topologia especial que usaremos, exceto parapontos sobre arestas nomeadas. Para estes, vizinhancas consistem da uniao de dois semidiscosem torno de pontos simetricos sobre a aresta (veja figura (3.2)−(a)).

Para esta topologia especial, pontos simetricos sobre arestas possuem as mesmas vizinhancas,a saber, as vizinhancas circulares que elas possuiriam se arestas sob um mesmo nome fossemcoladas. Tais pontos sao distos estarem topologicamente identificados e sao tratados como umunico ponto. Observe que, agora, todos os pontos do cilindro de (a), exceto aqueles sobre arestasnao nomeadas, possuem vizinhancas topologicamente equivalentes a um disco de IR2. Por causadestes pontos excepcionais, o cilindro e denominado uma superfıcie com bordo.

Outros exemplos de modelos planos sao dados na figura (3.3). O modelo plano de umaesfera e obtido simplesmente identificando-se os pontos correspondentes das arestas nomeadasem (a); a bola de futebol americano e quase um perfeito exemplo pratico deste procedimento. Oprosseguimento 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 (pense em curvar um cilindro ateque suas extremidades se toquem). Note agora que todas as vizinhancas sao discos completos e,superfıcies onde isto ocorre sao denominadas superfıcies sem bordo.

O caso (c) da outra variacao da figura (3.2): aqui a orientacao das arestas identificadas foramtrocadas produzindo o modelo da bem conhecida faixa de Mobius.

26

(a) (b)

(c)

Figura 3.1: Solidos cujas superfıcies nao sao variedades topologicas.

27

αα

� �

αα

(a) (b)

Figura 3.2: Uma superfıcie cilındrica.

3.4 Definicao formal de modelos planos

A fim de tratarmos de modelos planos mais complicados, e necessario formalizar a definicaointuitiva dada acima. Comecaremos definindo identificacao de arestas:

Definicao 3.4.1 Sejam P uma colecao de polıgonos e a1, a2, . . . uma colecao de arestas destespolıgonos. Estas arestas sao ditas estarem identificadas quando uma nova topologia e definidaem P como se segue:

(1) Cada aresta possui uma orientacao de uma extremidade para outra e esta colocada emcorrespondencia topologica com o intervalo unitario de modo que os pontos iniciais de todasas arestas correspondam a 0 e pontos finais a 1.

(2) Os pontos sobre as arestas a1, a2, . . . que correspondem a um mesmo valor do intervalounitario sao tratados como um unico ponto.

(3) As vizinhancas da nova topologia em P sao discos inteiramente contidos em um unicopolıgono mais a uniao de semidiscos cujos diametros sao intervalos sobre pontos correspon-dentes nas arestas a1, a2, . . ..

Em outras palavras, na nova topologia as arestas identificadas a1, a2, . . . sao tratadas como umaunica aresta.

Nos exemplos precedentes, a identificacao de arestas foi representada colocando-se arestasidentificadas sob um mesmo nome; setas foram usadas para indicar a orientacao das arestas.

A seguir definiremos a identificacao de vertices:

Definicao 3.4.2 Sejam P um conjunto de polıgonos e p1, p2, . . . uma colecao de vertices destespolıgonos. Estes vertices sao ditos estarem identificados quando uma nova topologia e definidaem P na qual esta colecao de vertices e tratada como um unico ponto e vizinhancas sao definidascomo discos inteiramente contidos em uma unica face mais a uniao de setores de discos em torno

28

(c)

��

(b)(a)

����

��

α

α

β

αα

β

αα

Figura 3.3: Outras superfıcies: (a) esfera, (b) toro e (c) faixa de Mobius.

de cada um dos pontos p1, p2, . . .. No caso de alguma das arestas encontrando um destes verticesestar identificada, os setores formando uma vizinhanca em p1, p2, . . . deve conter os intervalossobre estas arestas.

Se a colecao de vertices p1, p2, . . . estao identificados diremos que os respectivos polıgonos r1, r2, . . .estao identificados na mesma colecao.

Modelos planos podem agora ser definidos rigorosamente:

Definicao 3.4.3 Um modelo plano e um grafo planar {N,A,R} com um numero finito devertices N = {n1, n2, . . . , nu}, arestas A = {a1, a2, . . . , av} e polıgonos R = {r1, r2, . . . , rt} cons-tituidos das arestas e vertices dados em N e A, respectivamente. Cada polıgono do grafo possuiuma certa orientacao em suas arestas e vertices. Polıgonos, arestas e vertices do grafo sao nome-ados; se uma colecao de arestas ou vertices possui o mesmo nome, eles sao considerados estandoidentificados de acordo com as definicoes (3.4.1) e (3.4.2).

A figura (3.4)−(a) ilustra a definicao acima. Na figura, arestas e vertices com nomes corres-pondentes estao identificados. Assim, por exemplo, as vizinhancas de cada ponto na aresta comnome e1, consistem de dois semidiscos, e a vizinhanca do vertice v1 consiste de quatro setores dedisco.

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 nao foramincluıdos. Analogamente, podemos desenhar uma colecao de vertices identificados como um unico

29

�������

��

��

����

��������

������

��

��

��

����

��

���

� �

v1

e5 v2v5

e1 e2

v1

v5

v4

v5

v4

e6

e1

e4

e6

v2v2

v3

e5

e5

e7v3

v1

e2

e3

e3v4 e7

e3e4

v1

e8

�������

��

��

����

��������

������

��

��

����

��

��

��

v1

e1 e2

v1

e1

e4

v1

e2

e3

e3e4

v1

(a) (b)

Figura 3.4: Modelos planos de uma piramide.

ponto. Note que a figura (3.4)−(a) e (b) representam a mesma estrutura {N,A,R} e, entao, omesmo modelo plano. Incluiremos o “polıgono infinito exterior” no desenho de um modelo planoquando conveniente.

3.5 Modelos planos realizaveis

Podemos finalmente concentrar nossa atencao sobre as condicoes necessarias para que um modeloplano seja realizavel.

3.5.1 Subdivisoes de uma superfıcie

Identificacoes topologicas como definidas acima podem produzir vizinhancas que nao sao discose, portanto, nao satisfazem a definicao de variedade topologica bidimensional. Para excluir taiscasos, vamos restringir a identificacao de modelos planos:

Definicao 3.5.1 Um modelo plano e uma subdivisao de uma superfıcie se as seguintes condicoessao obedecidas na identificacao de sua arestas e vertices:

(1) Toda aresta esta identificada com exatamente uma outra.

(2) Para cada colecao de vertices identificados, os polıgonos identificados nesta colecao podemser arranjados em um ciclo de tal maneira que cada par de polıgonos consecutivos no cicloesta identificado na aresta adjacente ao vertice da colecao.

30

Observe que a aresta v2 − v5 na figura (3.4)−(b) representa o par de arestas com nome e5 em(a); entao, v2 − v5 satisfaz a primeira condicao. Ela, assim, nao permite objetos como os dafigura (3.1)−(b) (onde quatro arestas foram identificadas).

A segunda condicao garante que as vizinhancas combinadas de cada grupo identificado devertices e um disco; por exemplo, os seis polıgonos identificados na figura (3.1)−(a) nao podemser arranjados em um ciclo simples.

3.5.2 Orientabilidade

Existem variedades bidimensionais que nao possuem um modelo em IR3, isto e, nao podem serconstruidas no espaco tridimensional e, assim, nao representam a fronteira de conjunto algumregularizado e limitado. Por exemplo, a garrafa de Klein, representada pelo modelo plano dafigura (3.5), e uma tal superfıcie. Estas variedades nao realizaveis podem ser distinguidas das

e1 e1

e2

e2

���

(a) (b)

Figura 3.5: A garrafa de Klein.

realizaveis pelo conceito de orientabilidade:

Definicao 3.5.2 (Regra de Moebius) Um modelo plano e orientavel se as direcoes de seuspolıgonos podem ser escolhidas de modo que para cada par de arestas identificadas, uma arestaocorre em sua orientacao positiva na direcao escolhida para seu polıgono, e a outra em suadirecao negativa.

No que se segue, estaremos interessados em modelos planos orientaveis somente quando elescorrespondem com superfıcies que podem ser realizadas em IR3, isto e, que podem formar afronteira de conjuntos regularizados e limitados. Como pode ser visto da definicao acima, paragarantir que um modelo plano seja realizavel e suficiente que todos os polıgonos estejam con-sistentemente orientados (ou seja, todos os polıgonos esteja orientados, digamos, no sentido dosponteiros do relogio exceto o “polıgono infinito exterior” que e orientado na direcao contraria).

Intuitivamente, modelos planos realizaveis podem ser desenhados sobre um conjunto regu-larizado e limitado sem se cruzar as arestas. Uma maneira mais rigorosa de se expressar isto

31

e observar que pontos e abertos do modelo plano podem ser aplicados em pontos e abertos deum conjunto regularizado e limitado atraves de uma aplicacao contınua. Na pratica, preferimosas aplicacoes que podem ser representadas atribuindo-se informacoes geometricas (tais como va-lores das coordenadas, equacoes das curvas e equacoes das superfıcies) para vertices, arestas epolı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 = 8vertices (onde vertices e arestas identificadas contam como um). Observe que o modelo planoinclui o “polıgono infinito exterior” e que todas as arestas estao 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 triangulos. O novo modelo possui umaface 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 relacionadacom estas divisoes.

Teorema 3.6.1 Seja S uma superfıcie dada como um modelo plano e sejam v, e, f o numerode vertices, arestas e faces no modelo plano. Entao a soma v − e + f e uma constante que naodepende da maneira na qual S foi subidividada a fim de formar o modelo plano. Esta constantee denominada a caracterıstica de Euler e e denotada por χ(S).

Para nossos propositos, este teorema de invariancia e um dos resultados centrais em topologiaalgebrica. Sua demonstracao esta fora do escopo destas notas mas e facil verificar sua validadeem exemplos: para o cubo original temos

χ = v − e + f = 8− 12 + 6 = 2

e, depois da modificacao,χ′ = v − e′ + f ′ = 8− 13 + 7 = 2

como esperado. Nao importa como facamos a subidivsao de um modelo plano, a caracterısticade Euler permanece a mesma.

3.6.1 Os numeros 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 sao denominados os numeros de Betti do modelo plano. A equacao (3.1) edenominada formula de Euler-Poincare.

Os numeros de Betti podem ser calculados atraves de tecnicas de teoria de grupos; contudo,isto esta alem do escopo de nossos interesses. Ao inves disto, vamos elaborar sobre o significado

32

(a) (b)

Figura 3.6: Modelos de um cubo.

33

topologico dos numeros de Betti. O segundo numero de Betti h2 revela a orientabilidade dasuperfıcie e e igual a h0 para os tipos de superfıcies que estamos interessados.

Uma superfıcie arbitraria e sempre a uniao de um numero de pecas conexas denominadascomponentes. O numero de Betti h0 representa justamente esta quantidade de componentesconexas. Assim, para o cubo, h0 = 1 enquanto que para o conjunto de seis bolas de tenis, h0 = 6.

O primeiro numero de Betti h1 e denominado o numero de conectividade da superfıcie. Elediz o maior numero possıvel de curvas fechadas que podem ser desenhadas sobre a superfıcie semsepara-la em duas ou mais partes. Para o cubo (ou qualquer curva topologicamente equivalente aele) h1 = 0 porque toda curva fechada corta sua superfıcie em dois pedacos. Mais intuitivamente,h1 representa duas vezes o numero de “buracos” no objeto. Uma rosquinha possui um buraco epara ela h1 = 2. Assim, a caracterıstica de Euler de uma rosquinha (ou de um copo de cafe) e

χ = 1− 2 + 1 = 0.

O teorema de invariancia pode ser generalizado para os numeros de Betti. Isto e, nao importacomo uma superfıcie seja dividida para formar um modelo plano, os numeros de Betti (e todas ascaracterısticas topologicas associadas a eles) continuam invariantes. Este fato sera de interessefuturo e, para referencia, vamos enuncia-lo como um teorema:

Teorema 3.6.2 Seja S uma superfıcie dada como um modelo plano. Entao os numeros de Bettih0, h1 e h2 associados ao modelo sao constantes, independentes da maneira que S foi subidivididaa fim de formar o modelo plano.

No que se segue, usaremos uma notacao mais conveniente para a formula de Euler-Poincare.Denotaremos por s o numero 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 usadopara denotar o numero de buracos e e definido por h1/2. Com esta notacao, a formula deEuler-Poincare pode ser escrita em termos de variaveis mais familiares como

v − e+ f = 2(s− h). (3.2)

3.7 Superfıcies com bordo

Como vimos nas secoes precedentes, variedades bidimensionais orientaveis coincidem com o con-ceito informal de “superfıcies fısicas sem bordo’. Algumas vezes, contudo, gostarıamos de lidartambem com superfıcies que nao necessariamente delimitam um solido.

Este e o caso, por exemplo, da superfıcie cilındrica ilustrada na figura (3.2). Seu modeloplano pode ser caracterizado por algumas arestas que nao foram identificadas. Estas arestasformam o bordo da superfıcie daı o termo superfıcies com bordo.

Superfıcies com bordo podem ser pensadas como criadas de suas versoes sem bordo cortando-se fora alguns polıgonos. Por exemplo, um cilindro e criado removendo-se dois discos de umaesfera. Comecamos com um modelo plano de uma esfera em (a) que e modificado removendo-sedois 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

34

uma superfıcie com b componentes de bordo, procedemos adicionando-se b novos polıgonos aoseu modelo plano de modo a formar uma superfıcie sem bordo. Claramente, a caracterıstica deEuler da superfıcie emendada e

χ = v − e+ f + b.

Assim, para uma superfıcie com b componentes de bordo, a formula de Euler-Poincare (3.2) podeser 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 vertice dual para cada polıgono dografo original e unindo-se cada par de vertices duais com uma aresta dual se os correspondentespolıgonos originais compartilhavam uma aresta (possivelmente atraves de uma identificacao).Desta maneira, polıgonos duais estao em correspondencia com os vertices originais.

Usando este procedimento, e facil converter um modelo plano de uma superfıcie em seumodelo plano dual. Um exemplo de um modelo plano e seu dual e dado na figura (3.7). Observeque 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 estao orientados. Para explicar como aorientacao do modelo plano dual e escolhida, vamos assumir que o modelo original esta conve-nientemente orientado. Primeiro, usamos a convencao de que cada aresta dual esta orientadana direcao do vertice dual que corresponde ao polıgono original na qual a aresta ocorre em suaorientacao positiva. Isto determina de maneira unica a orientacao de cada aresta dual. Direcoesdos polıgonos duais sao escolhidas pela seguinte regra:

35

Suponha que v, e, v∗ e e∗ denotam um vertice original, uma aresta adjacente a ele,o polıgono dual correspondente a v e o dual de e, respectivamente. Se v e o pontofinal de e, a orientacao de v∗ e escolhida de modo que e∗ e percorrida no seu sentidopositivo, caso contrario, a orientacao oposta e escolhida.

Sob esta regra, a orientacao dos polıgonos duais sera consistente. Mais ainda, o dual de ummodelo dua sera identico ao modelo original. Definimos a orientacao cıclida das arestas em tornode um vertice como a orientacao correspondente as arestas duais no polıgono dual do vertice.Note ainda que o dual e uma subdivisao de superfıcie porque cada uma de suas arestas estaidentificada com exatamente uma outra.

Nosso interesse em dualidade deve-se ao seguinte:

Lema 3.8.1 Todas as propriedades topologicas de um modelo plano sao preservadas em seu dual.

Em particular, os numeros de Betti e a caracterıstica de Euler χ de um modelo plano e seudual sao iguais.

3.9 Resumo

Podemos resumir o longo desenvolvimento feito acima como se segue: a superfıcie de um solidopode ser rigorosamente modelada em termos de um grafo planar com uma topologia especial.Baseado no grafo podemos deduzir propriedades topologicas da superfıcie tais como orientabili-dade, conectividade e o numero de “buracos”. Tais propriedades estao compactamente expressasna formula de Euler-Poincare.

Naturalmente, para os propositos de modelagem de solidos, nosso interesse primeiro e o demodelos planos realizaveis, isto e, modelos que podem ser colocados como bordo de um conjuntoregularizado limitado. Como veremos posteriormente, a teoria aqui desenvolvida nos permitiraderivar operacoes de manipulacao sobre modelos planos que sempre resultarao em representacoesrealizaveis sendo geral o suficiente para incluir todos modelos de interesse.

36

Capıtulo 4

Modelos de Contorno

Modelos de decomposicao e modelos construtivos consideram solidos como conjuntos de pontos,procurando representa-los atraves de discretizacoes ou como combinacoes (operacoes booleanas,por exemplo) de conjuntos mais simples. Em contraste com estes modelos, modelos de contorno(boundary models) representam um solido inderetamente, valendo-se da representacao de suasuperfıcie.

4.1 Conceitos basicos

Historicamente, modelos de contorno surgiram dos modelos poliedrais usados em computacaografica para representar objetos com remocao de linhas escondidas. Eles podem ser vistos comoum aprimoramento dos modelos graficos que tentaram superar os problemas dos modelos graficosantigos incluindo uma descricao completa da superfıcie do objeto.

Modelos de contorno representam um objeto dividindo sua superfıcie em uma colecao de facesde alguma maneira conveniente. Usualmente, esta divisao e realizada de modo que a forma decada face possua uma representacao matematica compacta, em geral, que a face esteja sobreuma superfıcie planar, quadratica, toroidal ou parametrica. A fim de garantir que a subdivisaocorresponda a um modelo plano valido, exigem-se certos criterios topologicos que serao discutidosmais adiante.

A porcao da superfıcie que forma a face e demarcada em termos de uma curva fechada queesta sobre a superfıcie. Uma face pode ter varias curvas como fronteira desde que elas definamum objeto conexo. Isto e, uma face e como um “continente” que pode possuir “lagos”. Contudo,“ilhas” em lagos nao fazem parte da face.

A definicao de face e ilustrada na figura (4.1). Nesta figura, os casos (a) e (c) constituemconjuntos bidimensionais nao conexos e, portanto, representam duas faces distintas. Os casos (d)e (e) representam faces cujos bordos tocam a si mesmos. Usualmente (d) seria considerada comouma face enquanto que (e) representaria duas. Observe que o interior de (d) e conexo enquantoo de (d) nao e. O caso (c) e uma face com duas curvas de bordo.

Por sua vez, as curvas de bordo de uma face sao representadas atraves de uma divisao emarestas. Em analogia ao que foi feito acima, arestas devem ser escolhids de modo a ter umarepresentacao conveniente, digamos, uma equacao parametrica. A parte da curva que forma aaresta e demarcada em termos de dois vertices.

37

(a) (b) (c)

(d) (e)

Figura 4.1: Definicao de uma face.

A figura (4.2) ilusta os componentes basicos de um modelo de contorno. Na figura, a superfıciedo objeto esta dividida em um conjunto de faces (a), cada uma das quais e representada em termosde seu polıgono de bordo (b), que por sua vez e representado em termos de arestas e vertices (c).

4.2 Estrutura de dados em modelos de contorno

Os tres tipos de objetos face, aresta e vertice e as informacoes geometricas associadas a elasformam os constituintes basicos de modelos de contorno. Alem de informacoes geometricas taiscomo equacoes das faces e curvas de bordo e coordenadas dos vertices, um modelo de contornodeve tambem representar como faces, arestas e vertices estao relacionados um com os outros. Ecostumeiro colocar toda informacao da geometria das entidades sob o termo de geometria de ummodelo de contorno e, analogamente, toda informacao de interconexao entre elas sob o termotopologia.

Todos modelos de contorno representam faces em termos de nos explıcitos de uma estruturade dados de bordo. Fora isto, muitas alternativas para se representar a geometria e topologiade um modelo de contorno sao possıveis, algumas das quais sao descritas abaixo. Por motivo desimplicidade, ilustraremos estas representacoes alternativas em termos do bloco da figura (4.3).

38

(a) (b) (c)

Figura 4.2: Constituintes basicos de modelos de contorno.

v8

v6

v7

v3

e7e5

v5

v1

v2

e6

e8e9

e1

v4

e4

e12e11

e10

e2

e3

Figura 4.3: Um objeto exemplo.

39

4.2.1 Modelos de contorno baseados em polıgonos

Um modelo de contorno que possui somente faces planares e denominado um modelo poliedral.Por causa de que todas as arestas de um poliedro serem segmentos de retas, e possıvel reduzirconsideravelmente a estrutura de dados neste caso.

Em sua versao mais simples, faces sao representadas como polıgonos, cada polıgono con-sistindo de uma sequencia de triplas ordenadas. Um solido consiste de uma colecao de facesagrupadas em termos de, digamos, uma tabela de identificadores ou uma lista encadeada defaces. Em alguns casos, ate mesmo a informacao de agrupamento e eliminada e as relacoes entreas faces sao completamente implıcitas. Esta representacao e usualmente usada em meta-arquivosde sistemas graficos.

4.2.2 Modelos de contorno baseados em vertices

Em um modelo de contorno baseado em polıgonos, as coordenadas de um vertice aparecemtantas quantas vezes o vertice aparece em uma face. Esta redundancia pode ser eliminadaintroduzindo-se vertices como entidades independentes da estrutra de dados de bordo. Neste caso,identificadores de vertices (ou, algo equivalente, como ponteiros para vertices) sao associados comas faces. Este tratamento da origem aos varios modelos de contorno baseados em vertices.

Note que a representacao da figura (4.4) lista os vertices de cada face em uma ordem con-sistente, a saber, no sentido dos ponteiros do relogio quando vistos por fora do cubo. Estaorientacao consistente e util em muitos algoritmos. Por exemplo, em remocao de superfıcies oulinhas escondidas, isto permite a eliminacao das faces de tras com base nos vetores normais dasfaces apontando consistentemente para fora do material. No caso da figura (4.4), as faces f1, f4e f5 seriam imediatamente descartadas.

vertice coordenadasv1 x1 y1 z1v2 x2 y2 z2v3 x3 y3 z3v4 x4 y4 z4v5 x5 y5 z5v6 x6 y6 z6v7 x7 y7 z7v8 x8 y8 z8

face verticesf1 v1 v2 v3 v4f2 v6 v2 v1 v5f3 v7 v3 v2 v6f4 v8 v4 v3 v7f5 v5 v1 v4 v8f6 v8 v7 v6 v5

Figura 4.4: Um modelo de contorno baseado em vertices.

A representacao da figura (4.4) nao inclui qualquer informacao da superfıcie; quando todasas faces sao planas, suas geometrias estao completamente definidas pelas coordenadas de seusvertices. Por outro lado, se as equacoes das faces sao necessarias por algum motivo (digamos,para iluminacao), elas podem ser associadas com as faces.

Em geral, muitas escolhas de que informacao e armazenada explicitamente e de que in-formacao e deixada implıcita (isto e, para ser calculada posteriormente) devem ser feitas quando

40

da implementacao de um modelo de contorno. Na figura (4.4), a inclusao explıcita das coordena-das do vertice nos da implicitamente as equacoes das faces (o tratamento oposto em se armazenarexplicitamente as equacoes das faces e deixar as coordenadas dos vertices de maneira implıcitanos conduziria a um modelo half-space apropriado apenas para objetos convexos).

Se alguma informacao geometrica redundante e armazenada (como as equacoes das faces noexemplo acima), problemas numericos podem surgir. Suponha que devido a falta de precisao,vertices de uma face nao estejam exatamente sobre o plano definido pela equacao da face. Qualinformacao deve ser tomada como “correta”?

4.2.3 Modelos de contorno baseados em arestas

Se superfıcies nao planares estao presentes em um modelo de contorno, torna-se muito util ainclusao explıcita das arestas na estrutura de dados de bordo a fim de armazenar informacoesdas curvas de intersecao das faces (arestas tambem sao uteis para se armazenar informacoestopologicas como veremos na secao seguinte).

Um modelo de contorno baseado em arestas representa uma face em termos de uma sequenciafechada (loop) de arestas. Os vertices sao representados somente atraves das arestas. Estetratamento nos leva ao modelo da figura (4.5).

aresta verticese1 v1 v2e2 v2 v3e3 v3 v4e4 v4 v1e5 v1 v5e6 v2 v6e7 v3 v7e8 v4 v8e1 v5 v6e10 v6 v7e11 v7 v8e12 v8 v5

vertice coordenadasv1 x1 y1 z1v2 x2 y2 z2v3 x3 y3 z3v4 x4 y4 z4v5 x5 y5 z5v6 x6 y6 z6v7 x7 y7 z7v8 x8 y8 z8

face arestasf1 e1 e2 e3 e4f2 e9 e6 e1 e5f3 e10 e7 e2 e6f4 e11 e8 e3 e7f5 e12 e5 e4 e8f6 e12 e11 e10 e9

Figura 4.5: Um modelo de contorno baseado em arestas.

A estrutura de dados indica uma orientacao para cada aresta. Assim, por exemplo, a arestae1 e considerada positivamente orientada do vertice v1 para o vertice v2. Novamente, as facesestao consistentemente orientadas, isto e, suas arestas estao listadas no sentido dos ponteiros dorelogio quando vistas do lado de fora do bloco. Observe que cada aresta ocorre em exatamenteduas faces, uma vez em sua orientacao positiva e uma vez na orientacao oposta.

Estrutura de dados winged-edge

A inclusao de nos explıcitos para cada um dos objetos basicos (face, aresta e vertice) abre aporta para a elaboracao de um modelo mais elaborado. Por exemplo, para auxiliar algoritmos

41

tais como remocao de linhas escondidas e iluminacao, informacoes da vizinhanca face-face podemser adicionadas a estrutura de dados da figura (4.5) associando-se arestas com os identificadoresdas duas faces que elas separam.

A assim chamada estrutura winged-edge, introduzida primeiramente por Baumgart, forneceum primeiro exemplo de tal modelo elaborado. Ele avanca um passo representando tambem ainformacao do loop nos nos das arestas.

Uma vez que cada aresta e aparece em exatamente duas faces, exatamente duas outras arestase′ e e′′ aparecem depois de e nestas faces. Mais ainda, por causa da orientacao consistente dasfaces, e ocorre exatamente uma vez em sua orientacao positiva e exatamente uma vez em suaorientacao oposta.

A estrutura winged-edge tira vantagem destas propriedades estruturais associando identifi-cadores para as duas arestas “proximas” com o no da aresta. Por convencao, estes dados saodenotados por ncw para a “proxima aresta no sentido dos ponteiros do relogio” e nccw para a“proxima aresta no sentido contrario aos dos ponteiros do relogio”; em particular, ncw identificaa proxima aresta na face onde a aresta ocorre em sua direcao positiva, e nccw a proxima arestana outra face.

Em virtude desta representacao, faces apenas precisam incluir o identificador de uma arestaarbitraria e um bit para indicar sua orientacao. A figura (4.6) da um exemplo da estrutura dedados winged-edge. Os sinais + e − denotam as orientacoes das arestas.

Comecando-se de uma aresta diretamente associada com um loop, todas as outras arestaspodem ser recuperadas seguindo-se os ponteiros ncw e nccw. Por exemplo, no caso da figura (4.6),a curva de bordo da face f5 e recuperada comecando-se de e12. A proxima aresta e dada porncw(e12) = e5. Uma vez que e5 foi percorrida em sua orientacao negativa (o que pode ser vistoexaminando-se os vertices), a proxima aresta e agora dada por nccw(e5) = e4. Analogamente,obtemos nccw(e4) = e8 como proxima aresta. Ela e percorrida na direcao positiva, de modo quea proxima aresta e ncw(e8) = e12. Percorremos assim todas as arestas fechando o loop.

Em sua variacao mais geral, as arestas da estrutura winged-edge tambem incluem os identifi-cadores fcw e fccw das faces vizinhas e, analogamente a ncw e nccw, os identificadores pcw e pccwdas arestas anteriores. Os indicadores de orientacao da figura (4.6) sao agora redundantes. Aresultante estrutura winged-edge e mostrada na figura (4.7). O diagrama esquematico (a) indicauma vez mais o significado dos varios componentes de dados.

Uma vez que a estrutura de dados winged-edge inclui o identificador de uma aresta adjacentepara cada vertice, todas as arestas que contem um dado vertice podem ser obtidas por umalgoritmo similar ao de se obter todas as arestas de uma face (veja figura (4.7)-(a)).

De fato, a estrutura de dados trata faces e vertices de uma maneira completamente simetrica.Se os nos vstart e vend, e os nos fcw e fccw sao trocados, obtemos o dual do poliedro original.

4.2.4 Faces com varias curvas de bordo

As estruturas de dados descritas ate agora assumem que cada face seja simplesmente conexa,isto e, que possua apenas uma curva de bordo. Contudo, algumas vezes e natural incluir facescom varias curvas de bordo (veja, por exemplo, o objeto da figura (4.8)).

Existem duas alternativas. O primeiro tratamento e o de se modelar faces com bordo quenao e simplesmente conexo conectando-se os segmentos de bordo com arestas auxiliares. No casoda figura (4.8), isto pode ser feito adicionando-se a aresta tracejada. Infelizmente, estas arestas

42

aresta vstart vend ncw nccwe1 v1 v2 e2 e5e2 v2 v3 e3 e6e3 v3 v4 e4 e7e4 v4 v1 e1 e8e5 v1 v5 e9 e4e6 v2 v6 e10 e1e7 v3 v7 e11 e2e8 v4 v8 e12 e3e9 v5 v6 e6 e12e10 v6 v7 e7 e9e11 v7 v8 e8 e10e12 v8 v5 e5 e11

vertice coordenadasv1 x1 y1 z1v2 x2 y2 z2v3 x3 y3 z3v4 x4 y4 z4v5 x5 y5 z5v6 x6 y6 z6v7 x7 y7 z7v8 x8 y8 z8

face primeira aresta sinalf1 e1 +f2 e9 +f3 e6 +f4 e7 +f5 e12 +f6 e9 −

Figura 4.6: A estrutura de dados winged-edge.

43

(a)

aresta vstart vend fcw fccw ncw pcw nccw pccwe1 v1 v2 f1 f2 e2 e5 e5 e6e2 v2 v3 f1 f3 e3 e6 e5 e7e3 v3 v4 f1 f4 e4 e7 e5 e8e4 v4 v1 f1 f5 e1 e8 e5 e5e5 v1 v5 f2 f5 e9 e4 e5 e12e6 v2 v6 f3 f2 e10 e1 e5 e9e7 v3 v7 f4 f3 e11 e2 e5 e10e8 v4 v8 f5 f4 e12 e3 e5 e11e9 v5 v6 f2 f6 e6 e12 e5 e10e10 v6 v7 f3 f6 e7 e9 e5 e11e11 v7 v8 f4 f6 e8 e10 e5 e12e12 v8 v5 f5 f6 e5 e11 e5 e9

vertice coordenadasv1 x1 y1 z1v2 x2 y2 z2v3 x3 y3 z3v4 x4 y4 z4v5 x5 y5 z5v6 x6 y6 z6v7 x7 y7 z7v8 x8 y8 z8

face primeira arestaf1 e1f2 e9f3 e6f4 e7f5 e12f6 e9

(b)

Figura 4.7: A estrutura de dados winged-edge completa.

44

Figura 4.8: Objeto com faces nao simples.

especiais devem ser marcadas de alguma maneira a fim de se evitar que elas sejam desenhadas.Contudo, na estrutura de dados winged-edge isto nao e necessario porque as arestas auxiliaresocorrem duas vezes na mesma face e podem ser detectadas comparando-se os componentes dedados fcw e fccw.

O outro procedimento e o de se adicionar um loop separado para modelar um bordo simplesno modelo de contorno, e associar a cada face uma lista de loops. Referencias a faces devemser trocadas por referencias ao loops apropriados. Por exemplo, os identificadores de face fcw efccw, na estrutura de dados winged-edge, devem ser trocados pelos identificadores de loop lcwe lccw. Todas as estruturas podem ser prontamente generalizadas neste esquema e nao maiselaboraremos sobre este topico.

4.3 Validade de modelos de contorno

Um modelo de contorno e valido se ele define a fronteira de um objeto solido “razoavel”. Estamosinteressados somente em objetos limitados cujas superfıcies sejam fechadas e orientaveis. Nestecaso, o criterio de validade de um modelo de contorno inclui as seguintes condicoes:

(1) O conjunto de faces de um modelo de contorno forma uma “pele” completa do solidocobrindo-o totalmente.

(2) Faces do modelo nao se interceptam a nao ser em arestas ou vertices comuns.

(3) As fronteiras das faces sao polıgonos simples que nao se auto-interceptam.

As segunda e terceira condicoes excluem objetos que se auto-interceptam como o caso ilustradona figura (4.9)−(a). A primeira condicao nao permite objetos como a “caixa aberta” (b) (parase representar objetos “abertos” com um modelo de contorno, o melhor tratamento e o de semodelar as partes “abertas” como faces marcadas de uma maneira especial, ao inves de deixa-lasfaltando).

45

(a) (b)

Figura 4.9: Modelos de contorno invalidos.

A primeira condicao relata a integridade topologica de um modelo de contorno. A teoria dosmodelos planos nos diz que todos criterios de integridade topologica podem ser impostos apenasatraves de meios estruturais. Em particular, a primeira condicao pode ser imposta fazendo-secom que cada aresta ocorra em apenas duas faces; assim, nenhuma aresta pode ser a fronteirade uma parte da superfıcie que esteja faltando. Note que a estrutura de dados winged-edge“automaticamente” satisfaz este criterio porque arestas ocorrendo em apenas uma unica facenao podem ser representadas.

A estrutura winged-edge tambem impoe a regra de Moebius, isto e, a de que as faces estejamsempre consistentemente orientadas. Assim, garante-se que uma superfıcie representada por elae sempre orientavel. Contudo, objetos nao orientaveis tambem sao descartados pela segundacondicao acima porque eles sempre se auto-interceptarao no espaco tridimensional.

Infelizmente, a integridade geometrica de um modelo de contorno definida pelas segundae terceira condicoes nao pode ser imposta apenas atraves de meios estruturais: atribuindo-seinformacoes geometricas inapropriadas para entidades topologicas completamente consistentespode gerar solidos invalidos. Para se garantir a integridade geometrica, deve-se ou fazer uso detestes computacionalmente caros que comparam cada dois pares de faces de um solido ou limitara liberdade do usuario dando a ele apenas mecanismos de descricao que produzam solidos validos.

4.4 Descricao de modelos de contorno

Examinando-se as figuras (4.6) e (4.7) rapidamente descobrimos um dos maiores problemas demodelos de contorno, a saber, a complexidade de suas contrucoes. Esta alem das capacidadesde um humano normal construir modelos de contorno corretos de uma maneira direta, em geral,digitando-se informacoes como as da figura (4.7).

Assim, o construtor de um modelador baseado em modelos de contorno deve suprir uma

46

colecao suficiente de facilidades de descricao de solidos mais conveniente e eficiente. Por outrolado, ele tambem deve levar em conta os problemas de integridade discutidos na secao anterior eprocurar tecnicas de descricao de solidos que ou permitam garantir o criterio de integridade ou,pelo menos, tornar difıcil a contrucao de modelos invalidos.

Alguns mecanismos de descricao frequentemente usados sao discutidos abaixo.

4.4.1 Conversao de modelos CSG

Uma solucao comum e a de se fornecer para o usuario uma linguagem de descricao de solidosbaseados em CSG e construir modelos de contorno atraves de uma conversao. Neste tratamento,o modelador deve incluir algoritmos para construir modelos de contorno para as primitivas CSG,e um algoritmo para operacoes booleanas em modelos de contorno.

Infelizmente, operacoes booleanas para modelos de contorno sao computacionalmente carase sensıves a problemas numericos. Mesmo se os problemas numericos de se calcular intersecoesde superfıcies pudessem ser resolvidos, o problema de incompatibilidade entre os espacos demodelamento CSG e modelos de contorno convencionais ainda permanece. Isto e, alguns objetosque podem ser representados em CSG nao possuem representacoes convenientes em modelos decontorno.

Um exemplo disto e mostrado na figura (4.10). O objeto pode ser representado em CSG comoa diferenca de dois cilindros. Por outro lado, estruturas de dados de bordo ordinarias (tais como aestrutura de dados winged-edge) nao podem apropriadamente representar a regiao onde o cilindro“interno” toca o “externo”. Uma vez que uma aresta nao pode possuir quatro faces vizinhas,

Figura 4.10: Um objeto com BR nao conveniente.

um par de arestas coincidentes deve ser usado. Isto, contudo, quebra o criterio de integridadegeometrica, e problemas podem surgir se operacoes booleanas adicionais sao aplicadas sobre omodelo de contorno.

47

4.4.2 Desenhos em dimensao dois e meio

Muitos objetos necessarios em pratica possuem simetrias que podem ser exploradas em suasdescricoes. Muito frequentemente, objetos podem ser descritos em termos de um corte bidimen-sional e uma informacao da “espessura” do material. Objetos com simetria rotacional fornecemum outro exemplo de como um solido pode ser descrito em termos de uma corte bidimensionale um eixo de revolucao.

Algumas vezes, estes dois tipos de objetos podem ser descritos em termos de objetos basicose operacoes booleanas. Mas muitas pessoas acham mais natural fornecer uma especificacaobidimensional e entao “varre-la” para fornecer a espessura do objeto ou “gira-la” para formar umobjeto rotacional. Uma vez que operacoes booleanas em modelos de contorno necessitam de umagrande quantidade de calculos, estas operacoes podem ser executadas muito mais eficientementedo que a sequencia de operacoes booleanas necessarias para se criar o mesmo modelo.

Estes mecanismos de descricao de solidos em dimensao dois e meio podem ser naturalmenteincorporados em modeladores que usam modelos de contorno. O termo “dimensao dois e meio”enfatiza que a maioria das operacoes de descricao sao realizadas em duas dimensoes e podemser visualizadas como operacoes em um modelo grafico bidimensional. Uma possibilidade e ade incluir separadamente primitivas de “varredura” no modelador e fornecer um algoritmo deconversao para modelo de contorno.

Um procedimento mais geral e o de considerar “varredura” como uma operacao que pode serrealizada sobre qualquer face planar de um modelo de contorno. Esta operacao de “levantamentode face” permite, por exemplo, a sequencia de construcao ilustrada na figura (4.10).

Desenhos em engenharia geralmente mostram um objeto a partir de varias projecoes orto-gonais. Esta tecnica pode ser usada para se descrever modelos de contorno na forma das assimchamadas “operacoes booleanas em perfis”. Esta operacao combina dois (ou mais) perfis fe-chados, representando a projecao do objeto a partir de duas direcoes distintas, varrendo-os eefetuando uma intersecao booleana. Surpreendentemente, muitos objetos podem ser modelossatisfatoriamente somente com o uso desta operacao; veja, por exemplo, a figura (4.12).

Infelizmente, as operacoes de varredura nao sao completamente seguras pois, por exemplo,com elas e facil de criar objetos que se auto-interceptam.

4.4.3 Modificacoes locais

Uma terceira facilidade de descricao e baseada em modificacoes locais de um modelo de contorno.De fato, mesmo a operacao de levantamento de face da secao anterior pode ser considerada comouma modificacao local que troca uma face por uma nova colecao de faces modelando a regiaolevantanda.

Um outro exemplo tıpico e o de se arrendondar a ponta de uma aresta como monstrado nafigura (4.13)−(a). Um caso mais geral e o de “misturar” varias arestas adjacentes como em (b).

Existe ainda um terceiro tipo de operacao de modificacao local. Certos modeladores mo-delam inicialmente um solido como um poliedro. Este e entao convertido em uma superfıcieintroduzindo-se pontos de controles nas arestas. O usuario pode entao modificar as coordenadasdos pontos de controle a fim de criar a forma desejada. Tecnicas especiais sao utilizadas a fimde mantar a suavidade da superfıcie.

48

Figura 4.11: Varredura de faces.

49

visao lateral visao frontal

Figura 4.12: Operacoes booleanas em perfis.

4.5 Algoritmos para modelos de contorno

4.5.1 Visualizacao

A confeccao de algoritmos de visualizacao para modelos de contorno e enormemente simplificadapela disponibilidade de faces, arestas e vertices dos solidos. Nesta linha, eles podem ser conside-rados como modelos “explıcitos” em comparacao com modelos CSG que devem ser “avaliados”para propositos de visualizacao.

Todas as tecnicas de se gerar uma saıda grafica de modelos graficos sao diretamente aplicadaspara modelos de contorno. Em acrescimo, para um modelo poliedral, todas as tecnicas bemconhecidas de remocao de superfıcies e linhas escondidas e iluminacao podem ser diretamenteaplicadas. Mais ainda, dispositivos de saıda grafica mais avancados frequentemente incluemsuporte em hardware para o rapido processamento de modelos poliedrais.

Infelizmente, a presenca de superfıcies nao planares torna as coisas mais complicadas especi-almente no caso de remocao de linhas escondidas. Existem algoritmos especializados que podemoperar em superfıcies quadricas, mas em geral, e mais eficiente converter modelos nao planaresem poliedrais a fim de se criar uma saıda com remocao de linhas escondidas.

Remocao de superfıcies escondidas e (surpreendentemente) mais simples porque tecnicaspadrao tais como algoritmos scan-line, o algoritmo z-buffer e ray casting podem ser aplicados.Estes metodos permitem a geracao de imagens com alta qualidade a um custo computacional demedio para alto.

50

(a) (b)

Figura 4.13: Modificacoes locais em modelos de contorno.

51

4.5.2 Propriedades integrais

Duas tecnicas estao disponıveis para o calculo de propriedades basicas em engenharia em modelosde contorno, a saber, o metodo de integracao direta e o uso do teorema da divergencia do calculo.

Integracao direta nada mais e do que a tecnica padrao discutida em textos de calculo. Estatecnica e baseada em se calcular o volume integral de um solido como a soma de contribuicoes(com sinais apropriados) de suas faces.

Por exemplo, o volume integral de uma funcao f(x, y, z) sobre um solido S pode ser calculadopor ∫ ∫ ∫

Sf(x, y, z) dxdydz = ±∑

i

∫ ∫F ′i

(∫ zi(x,y)

0f(x, y, z) dz

)dydx (4.1)

onde F ′i e a projecao da face Fi sobre o plano xy e zi(x, y) e obtida resolvendo-se a equacao de

Fi para z. O sinal e determinado olhando-se para a normal da superfıcie da face: se a normalesta voltada para o plano xy entao o sinal de menos e escolhido, caso contrario, o sinal de mais.

A integral dupla resultante pode ser calculada aplicando-se uma tecnica similar, isto e,calculando-se a contribuicao de cada aresta Fi. Ou seja, a integral de area de uma funcaog(x, y) sobre uma face pode ser calculada por

∫ ∫F ′i

g(x, y) dxdy = ±∑j

∫E′

j

(∫ yj(x)

0g(x, y)dy

)dx (4.2)

onde E ′j e a projecao de Ej sobre o eixo x e yj(x) e a equacao de Ej resolvida para y. Isto

finalmente nos leva a integrais simples da forma

∫ xj,0

xj,1

h(x) dx (4.3)

onde xj,0 e xj,1 sao as extremidades (projetadas) de Ej .Observe que, acima, tanto zi(x, y) quanto yj(x) sao consideradas como funcoes de x e y.

Desta maneira, faces nao planares e arestas devem ser subdivididas. Pode ainda ser difıcil dese resolver as equacoes da superfıcie e da curva para z e y mesmo numericamente, e entao asequacoes das arestas E ′

j de F ′i podem nao estar disponıveis. Contudo, para modelos poliedrais

a integracao direta e muito atrativa porque as equacoes das faces ou sao graficos de funcao oupodem ser eliminadas, e segmentos de retas sao projetados em segmentos de retas.

O teorema da divergencia fornece um metodo alternativo para se calcular propriedades in-tegrais. Da observacao de que se e sempre possıvel se obter pelo menos uma funcao vetorialg(x, y, z) tal que div g = f para uma dada funcao contınua f(x, y, z) segue-se que

∫Sf dV =

∫Sdiv g dV =

∑i

∫Fi

g · ni dFi

onde Fi e a face do solido S, ni e a normal unitaria em Fi e dFi e a diferencial de superfıcie. Porexemplo, se

f(x, y, z) = y2 + x2,

entao as escolhasg(z, y, z) = (x(y2 + x2), 0, 0)

52

eg(x, y, z) = (0, y3/3, x3/3)

sao ambas possıveis. Se todas as Fi sao polıgonos planares, as integrais do lado direito saofacilmente calculadas. No caso geral, tecnicas de aproximacao sao necessarias.

Em acrescimo aos metodos gerais discutidos acima, muitas tecnicas diretas simples para se cal-cular propriedades integrais de objetos poliedrais consistentemente orientados estao disponıveis.Por exemplo, o volume de um poliedro pode ser ser mais facilmente calculado atraves da somade volumes (com sinais apropriados) de tetraedros.

Assuma que o tetraedro tenha um vertice sobre a origem e os outros vertices estejam em

Pi = (xi, yi, zi),

para i = 1, 2, 3. Entao o volume com sinal do tetraedro e dado por

V =1

6P1 × P2 · P3

onde × e · denotam os produtos vetorial e interno de vetores. Observe que V e positivo ou nega-tivo dependendo da orientacao do triangulo P1P2P3 quando visto da origem (positivo se P1P2P3

estao no sentido dos ponteiros do relogio e negativo em caso contrario). O volume do poliedropode ser calculado tomando-se todos os tetraedros formados por tres vertices consecutivos nasfaces do solido e somando-se seus volumes (com sinais apropriados).

4.6 Propriedades de modelos de contorno

Temos:

(1) Poder de expressao: Depende da selecao de superfıcies que podem ser usadas. Nao existerazao inerente em se limitar esta colecao a simples half-spaces; assim modelos de contornopodem ser usados para se representar objetos em um espaco de modelagem mais geral doque possıvel para CSG. Por outro lado, alguns objetos que podem ser representados em CSGnao possuem uma representacao conveniente como modelos de contorno. Enquanto usuarioscom experiencia possam evitar tais objetos quando em interacao direta com o modelador,esta deficiencia pode causar problemas, em geral, se uma convercao de um modelo CSG eefetuada.

(2) Validade: A validade de modelos de contorno e em geral muito difıcil de se estabelecer. Oscriterios de validade dividem-se em restricoes geometricas e topologicas, como discutimosacima. Embora seja possıvel gerenciar a validade topologica sem grande custos adicionais,e difıcil impor criterios geometricos sem penalizar a velocidade de interacao.

(3) Ambiguidade e unicidade: Modelos de contorno validos nao sao ambıguos. Eles naosao unicos.

(4) Linguagem de descricao: Modelos de contorno sao muito macantes de se descrever dire-tamente. Felizmente, se e possıvel construir linguagens de descricao baseadas em operacoesde “varredura” ou em entradas no estilo de CSG.

53

(5) Concisao: Modelos de contorno de objetos uteis podem tornar-se muito grandes especial-mente se objetos nao planares sao aproximados por modelos poliedrais.

(6) Fecho das operacoes: Modelos de contorno nao sao usualmente fechados sob operacoesbooleanas (regularizadas ou nao). Os mecanismos de descricao baseados em conversao deCSG ou operacoes booleanas sao sempre vulneraveis. As operacoes naturais fechadas paramodelos de contorno sao os operadores de Euler discutidos mais adiante.

(7) Custo computacional e aplicabilidade: Modelos de contorno sao uteis para se gerarsaıdas graficas porque suas estruturas de dados incluem de imediato os dados necessariospara direcionar um dispositivo grafico. Algoritmos de analise baseados diretamente emmodelos de contorno tornam-se muito difıceis se representacoes de objetos de uma espacode modelagem mais geral do que poliedros devem ser processados.

54

Capıtulo 5

Operadores de Euler

Baseado na teoria de modelos planos do capıtulo 1 vamos agora olhar mais cuidadosamentesobre a manipulacao de estrutura de dados de bordo, definir os operadores de Euler e apresentarrigorosamente suas propriedades.

5.1 Manipulacao de modelos planos

Como observamos na secao (4.3), a integridade topologica de uma estrutura de dados do tipo dawinged-edge pode ser imposta somente atraves de meios estruturais. Apesar disto, o problemade se manipular uma estrutura de dados complicada e fazer com que todas referencias aos seusnos sejam mantidas corretamente e algo difıcil. Isto faz com que a escrita de algoritmos naotriviais (tais como operacoes booleanas) sejam inconvenientes.

Felizmente, a teoria dos modelos planos fornecera alguma ajuda. Como discutimos nocapıtulo 1, modelos planos fornecem uma abstracao matematica muito util de modelos de con-torno. Em particular, as propriedades topologicas da superfıcie do objeto podem ser obtidas apartir do modelo plano. O que ainda e preciso e um esquema para se criar tais modelos planosde modo quer certas propriedades sejam satisfeitas.

Nosso objetivo aqui e identificar um pequeno conjunto de operacoes de manipulacao sobremodelos planos que sao poderosas o suficiente para descrever todos os objetos fısicos de inte-resse. Embora sendo geral, as operacoes devem ser seguras, ou seja, por exemplo, modelos naoorientaveis (tais como a garrafa de Klein na figura (3.5) da pagina (31).

5.1.1 Operacoes topologicas locais

Um dos principais resultados da teoria de modelos planos apresentada no capıtulo 1 e o teoremada invariancia (teoremas (3.6.1) e (3.6.2) nas paginas (32) e (34)). Este teorema afirma que osnumeros de Betti e todas propriedades topologicas a eles associados (tais como a caracterısticade Euler e orientabilidade) permanecem invariantes para todos modelos planos que possam serconstruıdos para a superfıcie.

Uma consequencia direta do teorema da invariancia e o seguinte:

Lema 5.1.1 As propriedades topologicas de um modelo plano nao sao alteradas quando cortamosum polıgono em dois ou quando colamos dois polıgonos ao longo de uma aresta comum.

55

Podemos interpretar as operacoes de corte e colagem de polıgonos como operacoes inversasde manipulacao para modelos planos. Ou seja, o operacao de corte pode dividir um polıgonoem outros dois unindo dois de seus vertices com uma nova aresta. Desta maneira, a sequenciade arestas que delimita o polıgono e dividida em duas. Reciprocamente, a operacao inversa decolagem remove uma aresta que separa dois polıgonos fundindo os ciclos de arestas.

E natural perguntar se existem outras operacoes de manipulacoes uteis. Para responde-lausaremos a nocao de dualidade introduzida na secao (3.8). Considere o efeito da operacao decorte sobre o modelo plano dual. Como demonstrado na figura (5.1), a operacao de corte aplicadasobre o polıgono de um modelo dual tem o efeito de separar os correspondentes vertices do modelooriginal em dois. Analogamente, a operacao de colagem no dual tem o efeito de uma operacao deencaixe combinando em um unico vertice outros dois que estao unidos por uma aresta e fundindoos ciclos de arestas. As operacoes de quebra e encaixe sao inversas uma da outra.

� �

dual⇒

dual⇒

corte⇒

Figura 5.1: A operacao de quebra de um vertice.

Pelos lemas (3.8.1) e (5.1.1), uma operacao de corte ou sua inversa sobre o modelo dualpreservara todas as caracterısticas topologicas de um modelo plano. Assim, a operacao de quebrade vertices e sua inversa nao alteram as propriedades topologicas do modelo plano que elasmodificam e, portanto, podem ser adicionadas em nosso conjunto de operacoes de manipulacao.

Existe a necessidade de outras operacoes? Uma resposta para isto e fornecida pelo seguinteteorema:

Teorema 5.1.2 Seja PM um modelo plano realizavel de genus zero (isto e, uma modelo planotopologicamente equivalente a uma esfera). Entao as operacoes de colagem e encaixe de verticessao capazes de reduzir PM a um modelo plano que possui apenas um vertice e um polıgono, semarestas.

Demonstracao: Suponha que exista uma aresta E de PM que nao possa ser removida pelasoperacoes de colagem e encaixe de vertices. Entao, E deve ocorrer duas vezes no mesmo polıgono

56

e duas vezes no mesmo vertice. Assim, E forma uma curva fechada sobre uma variedade bidi-mensional M modelada por PM que nao separa M em duas componentes de modo que PM deveter genus maior do que zero. Por contradicao, uma tal aresta E nao pode ocorrer e, portanto,todas as arestas de PM podem ser removidas. q.e.d.

Assim, somente com o uso de operacoes de encaixe e colagem, todos modelos planos da esferapodem ser reduzidos a um modelo com um unico vertice e um unico polıgono. Denominaremoseste modelo especial de modelo plano esqueletico.

Naturalmente, o modelo plano esqueletico nao e um modelo particularmente util da esfera oudo cubo. Sua importancia para nossos propositos deve-se ao seguinte:

Corol rio 5.1.3 Seja PM um modelo plano realizavel de genus zero. Comecando-se a partirde um modelo plano consistindo de um unico polıgono e um unico vertice, PM pode ser criadoatraves de uma sequencia de e operacoes de colagem e encaixe, onde e e o numero de arestas dePM .

Demonstracao: Pelo teorema (5.1.2), todas as arestas de PM podem ser removidas com umasequencia S consistindo de e operacoes de colagem e encaixe. Uma vez que as operacoes de cortee quebra de vertices sao exatamente as inversas destas operacoes, a sequencia S−1 consistindodas operacoes de corte e quebra associadas as operacoes de S em ordem reversa e uma sequenciaque satisfaz nossa afirmativa. q.e.d.

Isto e, comecando-se de um modelo plano esqueletico, todos os modelos planos de genus 0podem ser criados por meio de operacoes de corte e quebra. Assim, a fim de criar um modeloplano arbitrario de genus 0, precisamos apenas fornecer o “prototipo” do modelo plano esqueleticocomo primitiva e trabalhar sobre ele com estas duas operacoes.

Como as duas operacoes de manipulacao nao alteram as propriedades topologicas globais domodelo plano sobre o qual elas operam, as denominaremos de operacoes topologicas locais.

5.1.2 Operacoes topologicas globais

Em acrescimo as operacoes topologicas locais, necessitamos de operacoes que sejam capazes deproduzir objetos com genus maior do que zero. Como estas operacoes devem definitivamente asdenominaremos de operacoes topologicas globais.

Neste ponto, um ligeiro regresso a topologia das variedades se faz necesseario. Dadas duassuperfıcies, e sempre possıvel construir uma nova cortando-se fora dois pequenos discos de cadauma das superfıcies originais e colando-se as duas superfıcies ao longo do bordo destes discos.Por exemplo, o bitoro pode ser criado neste esquema a partir de dois toros.

A superfıcie resultante deste procedimento de corte-e-colagem e denominada soma conexa dasduas superfıcies originais. O seguinte teorema mostra que o procedimento de corte-e-colagem esuficientemente geral para se criar todas as superfıcies em que estamos interessados.

Teorema 5.1.4 (Teorema da classificacao) Toda superfıcie orientavel e topologicamente e-quivalente ou a esfera ou a soma conexa de n toros.

57

A demonstracao do teorema da classificacao esta alem do escopo destas notas.O procedimento de corte-e-colagem pode ser prontamente interpretado na linguagem de mo-

delos planos. Na interpretacao, o “corte dos discos” torna-se a criacao de dois polıgonos nosdois modelos planos nas posicoes desejadas. A “colagem” e modelada como uma operacao quecombina estes dois polıgonos com uma nova aresta que ocorrera duas vezes no novo polıgonocombinado.

Por exemplo, a figura (5.2) mostra os modelos planos de um cubo e um tetraedo. Eles podemser combinados unindo-se o polıgono p do cubo e o polıgono “externo” com uma nova aresta.Esta ocorre duas vezes no polıgono p′, assim, p′ tem nove arestas.

p′p

+ =

Figura 5.2: Soma conexa de dois modelos planos.

Se interpretarmos os dois modelos planos originais da figura (5.2) como um unico modeloplano desconexo, podemos observar que a operacao de soma conexa altera a conectividade domodelo. Estendendo o uso da operacao de soma conexa para dois polıgonos de uma mesmacomponente conexa do modelo plano podemos alterar o genus da superfıcie. Por exemplo, epossıvel produzir um buraco no cubo da figura (5.3) unindo-se os dois polıgonos atraves de umanova aresta.

Figura 5.3: Soma conexa aplicada a uma unica componente.

Novamente, a operacao de soma conexa possui uma operacao inversa natural. Esta operacaode diferenca conexa pode ser usada para se remover uma aresta ocorrendo duas vezes em umpolıgono. Como resultado, o polıgono fica dividido em outros dois.

58

Munidos com a operacao de soma conexa e sua inversa, podemos mostrar o seguinte:

Teorema 5.1.5 Seja PM um modelo plano realizavel. Utilizando-se as operacoes topologicaslocais (corte e colagem de polıgonos, quebra e encaixe de vertices), e as operacoes de soma ediferenca conexa, todas as arestas de PM podem ser removidas, isto e, PM pode ser reduzidoao modelo plano esqueletico.

Demonstracao: Considere uma aresta arbitraria E de PM . Devemos considerar as seguintespossibilidades:

(1) E separa dois polıgonos distintos. Neste caso, E pode ser removida com a operacao decolagem de polıgonos.

(2) E ocorre em um unico polıgono entre dois vertices distintos. Neste caso, E pode serremovida com a operacao de encaixe de vertices.

(3) Caso contrario, E pode ser removida com a operacao de diferenca conexa.

Como cobrimos acima todos os casos, todas as arestas foram removidas. q.e.d.

Analogamente aos resultados do teorema (5.1.2) e do corolario (5.1.3) temos tambem o

Corol rio 5.1.6 Seja PM um modelo plano realizavel. Comecando-se do modelo plano es-queletico, PM pode ser criado atraves de uma sequencia finita de operacoes topologicas locais eoperacoes de soma ou diferenca conexa.

Demonstracao: Analoga a do corolario (5.1.3). q.e.d.

Isto e, todos os modelos planos realizaveis podem ser criados com operacoes topologicas locaise operacoes de soma ou diferenca conexa.

5.1.3 Consistencia das operacoes sobre modelos planos

O corolario (5.1.6) nos diz que todo modelo plano de interesse (isto e, todos modelos planosrealizaveis) podem ser gerados por meio de operacoes de manipulacao. Desta forma, as operacoessao completas, isto e, elas sao poderosas o suficiente a fim de descrever todos os modelos planosrealizaveis.

E natural perguntar se as operacoes sao tambem consistentes, isto e, se estamos certos deque elas sempre vao produzir modelos realizaveis. A consistencia das operacoes e estabelecidano seguinte teorema:

Teorema 5.1.7 Todas as operacoes locais de manipulacao de modelos planos (corte e colagemde polıgonos, quebra e encaixe de vertices) como as operacoes globais (soma e diferenca conexa)sao consistentes, isto e, elas nao podem criar modelos planos nao realizaveis.

59

Demonstracao: Vamos considerar uma sequencia finita arbitraria de operacoes sobre um mo-delo plano. A demonstracao sera por inducao sobre o comprimento da sequencia.

Primeiro, lembramos os criterios para modelos planos realizaveis dados nas definicoes (3.5.1)e (3.5.2):

(1) Identificacao de arestas: cada aresta do modelo plano esta topologicamente identificadacom exatamente uma outra.

(2) Identificacao cıclica: os polıgonos identificados em cada vertice podem ser arranjados emum ciclo de tal maneira que cada par de polıgonos consecutivos no ciclo esta identificadoem uma aresta adjacente ao vertice.

(3) Orientabilidade: os polıgonos do modelo podem ser orientados de modo que para cadapar de arestas identificadas, uma ocorre em sua orientacao positiva na direcao de seupolıgono e a outra ocorre na direcao negativa.

Como base de inducao, o modelo plano esqueletico satisfaz trivialmente as tres condicoes.A partir daı, temos que considerar exatamente seis casos que correspondem as seis possıveisoperacoes. Em cada caso, devemos mostrar que as operacoes irao preservar os criterios 1-3enunciados acima.

Vamos elaborar dois dos casos aqui e deixaremos os demais como exercıcios para o leitor.Primeiro, a operacao de quebra de um vertice adiciona um par de arestas identificadas queocorrem em orientacoes positivas em seus respectivos polıgonos no modelo plano. Entao, se omodelo plano originalmente satisfazia as restricoes de identificacao de arestas e orientabilidade,o mesmo vai acontecer depois da operacao. Para a restricao de identificacao cıclica, observe quea operacao de quebra de vertices divide o ciclo de arestas de um vertice em duas sequencias;assim a identificacao cıclica permanecera inalterada.

Como quebra de vertices e colagem de faces sao operacoes duais uma da outra, a argumentacaoacima implica tambem que a operacao de colagem de faces nao alterara nenhum dos criterios devalidade. Finalmente, pode-se mostrar que a operacao de soma conexa preserva estes criterios.

Uma vez que nenhum dos casos viola a hipotese de inducao, uma sequencia arbitraria deoperacoes ira criar um modelo que satisfaz os criterios de realizabilidade e temos desta maneirao teorema. q.e.d.

Juntos, o corolario (5.1.6) e o teorema (5.1.7) afirmam que as operacoes locais e globais demanipulacao sao consistentes e completas para a famılida de modelos planos realizaveis.

5.2 Manipulacao de modelos de contorno

Como vimos na secao precedente, uma pequena colecao de operacoes de manipulacao (e suasinversas) sao suficientes para se descrever todos os modelos planos de interesse. De acordo coma teoria, somente tres tipos basicos de operacoes manipulativas sao necessarias:

(1) Uma primitiva “prototipo” que cria modelos planos esqueleticos.

(2) Operacoes topologicas locais que subdividem a sequencia de arestas de uma face ouvertice.

60

(3) Uma operacao topologica global que implementa a soma conexa de dois polıgonos (po-dendo eles estar ou nao em uma mesma componente conexa).

Esta teoria se transporta para modelos de contorno. As operacoes de manipulacao sobre modelosplanos terao seus correspondentes na forma de operadores de Euler que operam sobre a topologiada estrutura de dados de um modelo de contorno. Sendo realizacoes dos modelos planos teoricospara estruturas de dados de contorno reais, os operadores de Euler compartinham a consistenciae completeza enunciados no corolario (5.1.6) e teorema (5.1.7).

5.2.1 Notacoes e convencoes

Os operadores de Euler foram primeiramente introduzidos por Baumgart no contexto da estruturade dados winged-edge. Como esta estrutura de dados e a base natural para discutir os operadores,assumiremos o seu uso segundo a figura (4.6) estendida com loops para se representar faces naosimples. Por conveniencia de linguagem, os loops internos serao denominados aneis. Tambemusaremos o termo casca para denotar uma componente conexa de uma estrutura de dados debordo.

Tambem usaremos a convencao da existencia de loops vazios na estrutura de dados, isto e,loops consistindo de apenas um vertice, sem arestas. Tais entidades sao uteis, por exemplo, narepresentacao do modelo de bordo do modelo plano esqueletico.

Por convencao historica, os operadores sao usualmente denotados por nomes mnemonicos.

M − make − constroiK − kill − destroiS − split − quebraJ − join − encaixa

V − vertex − verticeE − edge − arestaF − face − faceS − solid − solido

H − hole − buracoR − ring − anel

Por exemplo, o nome “mev” significa “Make an Edge and a Vertex” (construa uma aresta e umvertice).

E importante ter em mente que os operadores de Euler podem ser implementados de variasmaneiras que podem variar profundamente de acordo com as estruturas de dados.

5.2.2 Primitivas esqueleticas: MVFS e KVFS

A teoria que desenvolvemos nos diz que por meios de manipulacoes topologicas locais e globais,todos os modelos planos de interesse podem ser criados a a partir de um unico modelo planoesqueletico. Isto significa que uma unica primitiva esqueletica e suficiente para nossos propositos.

O operador MVFS desempenha este papel em nossa colecao. Como o nome sugere, ele criaum instanciamento da estrutura de dados que possui uma face e um unico vertice. Entao anova face possui um unico loop “vazio” com nenhuma aresta. O efeito de MVFS e ilustrado nafigura (5.4).

O “solido” criado por MVFS pode nao satisfazer a nossa nocao intuitiva de um objeto solido.Apesar disto, ele e util como o estado inicial para se criar um modelo de bordo com uma sequenciade operadores de Euler.

61

�vf

NIL ⇒

Figura 5.4: O operador MVFS.

Analogamente as operacoes de manipulacao de modelos planos, todos os operadores de Eulerpossuem operadores inversos que desfazem o efeito do operador “positivo” associado. KVFS e ooperador inverso de MVFS. Ele destroi o instanciamente esqueletico da estrutura de dados quefoi criado por MVFS.

5.2.3 Manipulacoes locais

Em analogica com as operacoes locais em modelos planos, necessitamos de operadores que possamtrabalhar sobre propriedades topologicas locais de um modelo de contorno.

MEV, KEV

Os operadores MEV e MEF (que serao descritos na proxima secao), com seus inversos (KEV,KEF) correspondem exatamente com as operacoes de quebra de vertices e polıgonos para modelosplanos. Desta maneira, MEV subdivide o ciclo de arestas de um vertice “quebrando” um verticeem dois e unindo-os com uma nova aresta (figura (5.5)−(a)). O efeito disto e o de se adicionarum vertice e uma aresta na estrutura de dados, como sugere o nome do operador.

A aplicabilidade de MEV pode ser estendida para vertices solitarios (isto e, vertices queaparecem em loops vazios tais como aqueles criados por MVFS) subdividindo-o em dois novosligados por uma aresta (veja a figura (5.5)−(b)). Podemos tambem incluir o caso em que um novovertice e ligado com um antigo por meio de uma nova aresta, como ilustrado na figura (5.5)−(c).

O operador inverso KEV e capaz de desfazer quaisquer um dos tres casos da figura (5.5).Em outras palavras, dada uma aresta que conecta dois vertices distintos, KEV pode remover aaresta e colapsar os vertices em um e combinar seus ciclos de arestas.

MEF, KEF

O operador MEF subdivide um loop unindo dois vertices com uma nova aresta. O efeito eo de se adicionar uma nova aresta e uma nova face na estrutura de dados. Em acrescimoao caso ordinario da figura (5.6)−(a), podemos estender a aplicabilidade de MEF para loopsvazios da mesma maneira que fizemos com MEV. Entao o resultado de se subdividir um vertice“solitario” consiste de uma aresta “circular” separando duas faces. Observe que os vertices iniciale final de tal arestas sao iguais; este e um caso admitido pela estrutura de dados winged-edge(figura (5.6)−(b)). Como uma caso mais geral disto, e sempre possıvel “conectar” um vertice asi mesmo em termos de MEF, como ilustra a figura (5.6)−(c).

62

⇒� � � � � �⇒

⇒� � �

(a) (b)

(c)

Figura 5.5: O operador MEV.

� �⇒

(a) (b)

� ����

(c)

� �����

Figura 5.6: O operador MEF.

63

Novamente, o operador inverso KEF pode desfazer o efeito de MEF em cada caso. Maisprecisamente, dada uma aresta adjacente a duas faces distintas, KEF e capaz de remover aaresta e unir as duas faces em uma unica. O loop da face resultante e combinacao dos bordosoriginais.

Note que as descricoes de KEV e KEF sao “duais” uma da outra.

KEMR, MEKR

Os operadores MEV e MEF sao “fundamentais” no sentido que eles podem ser derivados dire-tamente da teoria de modelos planos. Em contraste, a operacao local restante e um operador de“conveniencia” cuja necessidade e devida as nossas convencoes.

Acima, “loops vazios” foram usados para realizar modelos planos esqueletricos no domınioda estrutura de dados de bordo. Para um uso completo de loops vazios, e util introduzir umoperador especial para eles.

O operador resultante KEMR quebra um loop em outros dois removendo uma aresta queaparece duas vezes nele (veja a figura (5.7)−(a)). Entao KEMR divide uma curva conexa que

(a)

(c)

��� ⇒

�(b)

��� �

��

��

Figura 5.7: O operador KEMR.

e bordo de uma face em duas. O efeito e o de se remover uma aresta e adicionair um anel naestrutura de dados. Os casos especiais em que um ou ambos dos loops resultantes sao vaziostambem sao incluıdos (figura (5.7)−(b, c)).

O operador inverso MEKR pode combinar dois loops de uma face unindo um vertice de cadacom uma nova aresta.

5.2.4 Manipulacoes globais: KFMRH, MFKRH

Nenhum dos operadores discutidos ate agora e capaz de modificar as propriedades globais daestrutura de dados, em geral dividindo o solido em duas componentes ou criando um “buraco”.Este e o objetivo dos operadores de Euler restantes.

64

O operador KFMRH e uma realizacao da operacao de soma conexa discutida na secao (5.1.2).Dadas duas faces (digamos, f1 e f2) o operador as une em uma unica transformando os loops debordo de f2 em um anel de f1. Assim, o efeito e o de se remover uma face (f2) e adicionar umanel. Note que KFMRH nao possui nenhum efeito de arranjo local das arestas ou vertices — elae realmente uma manipulacao global. Isto tambem significa que se e difıcil ilustrar o seu efeito.

KFMRH e um nome infeliz porque o operador nao necessariamente cria um “buraco”. Defato, KFMRH somente faz isto se as duas faces sobre as quais ele opera estao em uma mesmacasca. Quando aplicado a faces pertencentes a cascas distintas, seu efeito e o de combina-las emuma unica e o nome “KFSMR” (onde S significa “shell”) seria mais apropriado. Mas nenhumdos nomes seria melhor do que outro, assim permaneceremos com KFMRH.

Novamente, um operador inverso MFKRH e capaz de reverter o efeito de KFMRH. Elemodifica um anel de uma face para um loop de bordo de uma nova face.

Relembre que a operacao de soma conexa para modelos planos foi especificada como acidio-nando uma nova aresta para conectar os dois polıgonos que devem ser unidos, enquanto KFMRHconsegue o mesmo efeito fazendo com que o bordo de uma face seja um anel na outra. Fora isto,as operacoes sao totalmente analogas.

5.3 Um exemplo dos operadores de Euler

Vamos elucidar o uso dos operadores de Euler por meio de um exemplo simples, a construcaode uma caixa retangular com um buraco tambem retangular. As construcao e ilustrada nafigura (5.8) onde tanto o modelo plano quando o modelo tridimensional aparecem.

A construcao comeca com a criacao do modelo plano esqueletico atraves de um MVFS(a). Aplicando-se MEV tres vezes, tres arestas e tres vertices sao adicionados para formar(b). Unindo-se os vertices extremos da sequencia de arestas (b) com um MEF, o modelo (c) ecriado. Note que o o modelo tridimensional (c) consiste de duas faces planares, uma ligeiramenteacima da outra, como os dois lados de uma folha de papel. Um tal modelo e denominado umalamina.

O uso de MEV quatro vezes no conduz ao modelo (d) onde as arestas que irao compor o“lado” da caixa ja aparecem. As pontas destas arestas sao unidas com o uso de MEF quatrovezes para formar as faces da caixa retangular.

Vamos agora tratar da construcao do buraco. Primeiro necessitamos formar uma face interiorsobre o topo da caixa em (e). Faremos isto adicionando uma face na face superior com um MEF(f) e removendo-a com um KEMR (g). Isto fornece um loop vazio com um vertice na face superiorda caixa. Adicionando-se tres arestas a partir deste vertice com o uso de MEV tres vezes (h),a face interior pode ser formarda com um MEF (i). Agora, as faces interiores do buraco podemser formadas com o uso dos operadores MEV quatro vezes (j) e MEF uma vez (k). Os passos de(h) ate (k) sao estritamente analogos aos de (b) ate (e).

Formamos entao todas as arestas e vertices do objeto desejado. Para terminar a descricao, aface inferior do futuro buraco e “subtraıda” da face inferior da caixa por meio de um KFMRH(l).

Naturalmente, para de fato criar a caixa, faz-se necessario a atribuicao de coordenadas paraos vertices que sao criados. Isto pode ser feito pelos operadores que criam vertices (isto e, MVFSe MEV).

65

(d) (e) (f)

(a) (b) (c)

� �

���

��

� �

��

��

��

��

��

��

��

��

��

��

��

��

��

Figura 5.8: Exemplo dos operadores de Euler.

66

(j) (k) (l)

(g) (h) (i)

����

� �� �

� ���

� � ��

� �

��

� � ��

� �

� � �

� �

Figura 5.8: Exemplo dos operadores de Euler (continuacao).

67

5.4 Propriedades dos operadores de Euler

5.4.1 A formula de Euler-Poincare revisitada

Relembramos a formula de Euler-Poincare:

v − e+ f = 2(s− h), (5.1)

onde v, e, f , s e h denotam o numero de vertices, arestas, faces, cascas e buracos no solido.Da teoria de modelos planos e claro que uma colecao de faces, arestas e vertices pode ser

um modelo de bordo valido somente se os numeros destes elementos satisfazem a equacao (5.1).Assim, ela pode ser considerada como uma condicao de integridade necessaria para modelos decontorno.

A equacao (5.1) pode ser modificada a fim de torna-la consistente com nossas convencoes daestrutura de dados. Para isto, introduzimos um novo parametro r que denotara o numero deaneis. Obviamente, cada anel pode ser removido introduzindo-se uma nova aresta que o conectacom o loop de bordo externo de sua face (veja a figura (4.8)). Nao foi preciso nenhuma face ouaresta para esta operacao mas o numero de arestas depois da remocao de r aneis sera e′ = e+ r.Substituindo e′ por e na equacao (5.1) obteremos

v − e+ f = 2(s− h) + r (5.2)

a qual constitui uma condicao que deve ser satisfeita pelos numeros de elementos da estruturade dados (v, e, f, r) e as caracterısticas globais (s, h) do solido modelado.

5.4.2 Propriedades algebricas dos operadores de Euler

Observe que a estrutura de dados criada por MVFS possui v = f = s = 1 e e = h = r = 0.Substituindo-se estes numeros na equacao (5.2) podemos ver que ela continua valida. Mais ainda,todos os outros operadores irao acrescentar ou remover entidades da estrutura de dados sempremantendo a validade da equacao (5.2). Por exemplo, MFKRH adiciona uma face e remove umacasca e um anel. Em termos da equacao (5.2), seu efeito e o de trocar f por f ′ = f + 1, r porr′ = r−1 e h por h′ = h−1. Substituindo-se f ′, r′ e h′ em (5.2) podemos ver que ela permanecesatisfeita. Assim, os operadores de Euler possuem a propriedade de que o numero de elementosem cada estrutura de dados criada por eles sempre tornarao valida a formula de Euler-Poincare.

Estas observacoes sugerem que os operadores de Euler podem ser estudados em termos pura-mente algebricos. Vamos considerar um espaco discreto de dimensao seis e denominaremos seuseixos por v, e, f , h, h e s. Entao (5.2) pode ser interpretada como a equacao de um hiperplanoH de dimensao cinco neste espaco. Deste ponto de vista, a analogia para um modelo de contornoe um ponto

P =[v e f h r s

],

do espaco de dimensao seis e a condicao da equacao (5.2) pode ser interpretada como evidenciandoos pontos “interessantes” do espaco que estao sobre o plano H .

O hiperplano H e por si proprio um subespaco discreto de dimensao cinco do espaco dedimensao seis. Assim, ele pode ser gerado por cinco vetores vi satisfazendo as seguintes condicoes:

68

(1) Cada vetor vi pertence a H .

(2) Os vetores vi sao linearmente independentes.

Depois que um conjunto de vetores da base de H forem escolhidos, todos os seus pontos podemobviamente serem expressos como combinacoes lineares destes vetores.

Na analogia sugerida acima, os operadores de Euler tomam o papel dos vetores da base. Suascoordenadas sao ilustradas na tabela (5.1). Obviamente, existe uma infinidade de outros vetores

Operador Vetores da Base

v e f h f sMEV 1 1 0 0 0 0MEF 0 1 1 0 0 0MVFS 1 0 1 0 0 1KEMR 0 −1 0 0 1 0KFMRH 0 0 −1 1 1 0

KEV −1 −1 0 0 0 0KEF 0 −1 −1 0 0 0KVFS −1 0 −1 0 0 −1MEKR 0 1 0 0 −1 0MFKRH 0 0 1 −1 −1 0

Tabela 5.1: Os operadores de Euler.

que podem constituir uma base para H e cada um deles pode ser interpretado como uma colecaoparticular de operadores de Euler. Na pratica, e desejavel a escolha de operadores de Euler quecorrespondam aos “menores” vetores de H .

Esta visao algebrica dos operadores de Euler pode ser ainda aplicada para se obter uma ideiamais profunda de suas propriedades. Para ver como, vamos arranjar os vetores da base corres-pondentes aos operadores de Euler de nossa colecao juntos com os coeficientes da equacao (5.2)em uma matriz M :

M =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

1 1 0 0 0 00 1 1 0 0 01 0 1 0 0 10 0 −1 1 1 00 −1 0 0 1 01 −1 1 2 −1 −2

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦. (5.3)

Observe que os coeficientes do vetor da ultima linha de M age como o vetor normal ao hiperplanoH . Uma vez que os operadores de Euler formam uma base para H , a matriz M possui uma

69

inversa:

M−1 =1

12

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎣

9 −5 2 −2 3 13 5 −2 2 −3 −1

−3 7 2 −2 3 1−6 2 4 8 −6 23 5 −2 2 9 −1

−6 −2 8 4 −6 −2

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎦. (5.4)

que pode ser usada para calcular as “coordenadas de Euler” de qualquer (v, e, f, h, r, s)-upla. Porexemplo, o objeto construıdo na figura (5.8) possui v = 16 vertices, e = 24 arestas, f = 10 faces,r = 2 aneis, h = 1 buraco e s = 1 casca. Entao ele corresponde a localizacao

P =[16 24 10 1 2 1

]

do espaco discreto de dimensao seis. Agora, o produto

P ×M−1 =[15 10 1 1 10

]Tnos diz que para modelar este solido, no mınimo o uso de MEV 15 vezes, MEF 10 vezes, MVFS1 vez, KFMRH 1 vez e KEMR 1 vez se faz necessario. O fato da ultima componente ser zeromostra que a 6-upla original satisfaz a equacao (5.2). Observe que a construcao da figura (5.8)usa exatamente estes numeros de operadores; assim, ela e “otima” com relacao ao comprimentoda construcao.

A analise algebrica nos fornece uma ferramenta mental para discutir a complexidade dasdescricoes dos operadores de Euler para modelos de contorno. Como um outro exemplo disto, ses = 1, o produto generico [

v e f h r s]×M−1

resulta nas seguintes quantidades de operadores

Operador quantidade

MEV v - 1MEF f + h - 1MVFS 1KFMRH hKEMR r - h

(5.5)

Claramente, a equacao (5.5) fornece a quantidade mınima de operadores necessarios para

modelar um objeto correspondente a localizacao[v e f h r 1

]do espaco discreto de di-

mensao seis.Infelizmente, os operadores inversos contribuem com −1 na equacao (5.5), o que torna uma

interpretacao difıcil. Contudo, proque todos modelos de interesse possuem u, f > 0 e f > h, asquatro primeiras quantidades sao nao negativas. Isto sugere que todos objetos conexos podemser modelados sem os operadores “inversos” KEV, KEF, KVFS e MFKRH. Tambem, do fato deque a ultima linha pode ser negativa indica que alguns modelos nao podem ser criados sem ooperador MEKR.

70

5.4.3 Poder de descricao dos operadores de Euler

Os operadores de Euler removem grande parte da complexidade de se tratar com estruturas dedados de bordo. Isto impoe alguma penalidade sobre a generalidade e flexibilidade? Se e possıvelcriar modelos arbitrarios tao somente com o uso dos operadores de Euler?

A visao algebrica dos operadores de Euler apresentada na ultima secao nos fornece algumaajuda para estas questoes. Obviamente, cada 6-upla

[v e f h r s

]pode ser associada

com as “coordenadas de Euler” atraves da inversa da matriz de transicao M . Contudo, existemalguns cuidados. Como o leitor pode rapidamente observar atraves de um contra-exemplo, uma6-upla nao determina de maneira unica um solido. Podemos reproduzir todos os objetos quepossuem a mesma upla? Mais ainda, enquanto que a discussao da ultima secao sugere que onumero de operadores necessarios para se modelar um solido cresce linearmente com a comple-xidade do objeto, nao esta completamente claro que existe uma sequencia de operadores daquelecomprimento para todos os objetos porque os operadores inversos de Euler contribuem com −1nas quantidades dadas pela inversa da matriz de transicao.

A teoria de manipulacoes de modelos planos apresentada na secao (5.1) resolve a primeiraquestao. Em particular, os teoremas (5.1.5) e (5.1.7), e o corolario (5.1.6) podem ser reinterpre-tados no domınio de estruturas de dados de bordos e operadores de Euler. Nesta nova forma, osteoremas sao como se segue:

Teorema 5.4.1 Seja S uma estrutura de dados de bordo valida (isto e, S satisfaz todas ascondicoes de integridade topologica). Entao existe uma sequencia finita de operadores de Eulerque pode remover completamente S.

Corol rio 5.4.2 Todas as estruturas de dados de bordo validas podem ser criadas com umasequencia finita de operadores de Euler.

As demonstracoes sao analogas as do teorema (5.1.5) e do corolario (5.1.6).

Teorema 5.4.3 Os operadores de Euler sao consistentes, isto e, eles nao podem criar estruturasde dados de bordo topologicamente invalidas.

Novamente, a prova e similar a do teorema (5.1.7). Como um caso adicional, a consistenciade KEMR e MEKR tambem deve ser demonstrada.

Duas observacoes sobre o teorema de consistencia podem ser necessarias. Primeiro, paramodelar qualquer coisa, a sequencia de operadores deve satisfazer certos criterios sintaticos devalidade para a maneira particular de se representar os operadores de Euler. Por exemplo, todasas entidades sobre os quais os operadores de Euler operam devem existir e ser do tipo apropriado.Digamos, o operador KEF pode ser somente aplicado a uma aresta que aparece em duas facesdistintas.

Segundo, o teorema nada diz sobre a validade geometrica do modelo resultante; atribuindo-seinformacoes geometricas inapropriadas para faces, arestas ou vertices podera perfeitamente criarmodelos invalidos que nao possuem significado fısico.

71

Referencias Bibliograficas

[01] M. Mantyla. An introduction to solid modeling. Computer Science Press, Rockville, UnitedStates of America, 1988.

[02] Christoph M. Hoffmann. Geometric and Solid Modeling, An Introduction. Morgan Kauf-mann Publishers, Inc., San Mateo, California, United States of America, 1989.

[03] D. Meagher. Geometric modeling using octree encoding. Computer Graphics and Image Pro-cessing, 19, 129-147, 1982.

[04] H. Samet e M. Tamminem. Bintrees, CSG trees and time. SIGGRAPH ’85, volume 19, 3,121-130, 1985.

[05] Michael E. Mortenson. Geometric Modeling. John Wiley & Sons, New York, United Statesof America, 1985.

[06] Robert Bruce Tilove. Set Membership Classification: A Unified Approach to GeometricIntersection Problems. IEEE Transactions on Computers, Volume C-29, Number 10, p. 874-883, October, 1980.

[07] Aristides A. G. Requicha. Representations for Rigid Solids: Theory, Methods and Systems.Computing Surveys, Volume 12, Number 4, p. 437-465, December, 1980.

[08] Jaroslaw R. Rossignac e Herbert B. Voelcker. Active Zones in CSG for Accelerating Boun-dary Evaluation, Redundancy Elimination, Interference Detection, and Shading Algorithms.ACM Transactions on Graphics, Volume 8, Number 1, p. 51-87, January, 1989.

[09] P. Norton e P. Yao. Programando para Borland C++ para Windows. Berkeley editora, Riode Janeiro, 1992.

[10] Object Windows for C++ User’s Guide. Borland International, 1992.

[11] Resource Workshop User’s Guide. Borland International, 1992.

72