cap.8: estruturas geométricas - di.ubi.ptagomes/cg/teoricas/08-estruturas.pdf · 1 cap.8:...

29
1 Cap.8: Estruturas Geométricas Ensino de Informática (3326) - 4º ano, 2º semestre Engenharia Electrotécnica (2287) - 5º ano, 2º semestre Engenharia Informática (2852) - 4º ano, 2º semestre

Upload: vutram

Post on 16-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

1

Cap.8:Estruturas

GeométricasEnsino de Informática (3326) - 4º ano, 2º semestreEngenharia Electrotécnica (2287) - 5º ano, 2º semestreEngenharia Informática (2852) - 4º ano, 2º semestre

2

Motivação

Representar interiores dos objectos sólidos—A superfície pode não ser descrita explicitamente

3

Motivação

Alguns métodos de aquisição geram sólidos—Ex.: CAT scan

Alguns aplicações necessitam de sólidos—Ex.: sistemas de CAD/CAM

4

Motivação

Alguns algoritmos necessitam de sólidos—Ex.: ray-tracing com refracção

5

Retrospectiva histórica

Modelação por Linhas(Wireframes)

Sólido representado por arestase vértices

Gera modelos comambiguidades

Modelaçãopor superfícies

Década de 60 Descrição matemática da

superfície que delimita o objectosólido

Poucos testes de integridade domodelo

6

Retrospectiva histórica

Modelaçãode Sólidos

• Década de 70• Implícita ou explicitamente

contém informações sobre ofecho e a conectividade do objecto

• Garantia de realização física• Sistemas de CAD/CAM

Modelação de objectos sem homogeneidade dimensional

• Década de 80• Descrição de objectos com estrutura

interna elementos remanescentes• Ex: ACIS (Spatial Technology -

AutoCAD)

7

Geometria euclideana

Geometria afimGeometria projectiva

1 0 0 00 1 0 00 0 1 0Δx Δy Δz 1

Matriz de translação

1 0 0 00 cosθ sinθ 00 -sinθ cosθ 00 0 0 1

Matriz de rotaçãoem torno de OX

1 0 0 00 1 0 00 0 0 00 0 0 1

1 0 0 00 1 0 00 0 0 1/d0 0 0 1

Matriz de projecção ortogonal Matriz de projecção perspectiva

(G,∗)

G - conjunto de transformações* - operação de concatenação

Núcleos geométricos(em computação gráfica)

8

Geometria:–semi-algébrica–semi-analítica–sub-analítica

Operadores de forma:–operadores booleanos–operadores de Euler–etc.

Estrutura:–com–sem

Núcleos geométricos(em modelação geométrica)

9

Definição: conjunto 3-dimensional de pontos

Descrições alternativas:–Através da fronteira–Através de campos escalares definidos por equações–Através de campos escalares amostrados

Estas descrições originam três tipos de representação:–pela fronteira: B-Rep (boundary representation)–pelas operações sobre conjuntos: CSG (constructive solid geometry)–pela enumeração do espaço através de células: BSP trees, Octrees, etc.

Descrições de Sólidos

10

Sólido representado pela fronteira: vértices, arestas e faces.

Separação entre a estrutura (topologia) e a geometria:

– Um vértice tem a geometria dum ponto (x,y,z)∈R3

– Uma aresta tem a geometria duma linha (definidaparamétrica ou implicitamente)– Uma face tem a geometria duma superfície (definidaparamétrica ou implicitamente)

Construção através de operadores de Euler, os quais são regulados por uma fórmula de Euler.

B-Rep(Boundary Representation)

11

v-e+(f-fh)=C-Ch+Cc

Princípios:– A vizinhança de qualquer ponto dum

objecto é homeomorfa a R2.– A inserção dum estrato só pode ser

feita após os seus estratos fronteiros.– Os estratos são limitados, i.e. tem

mensuravelmente finitos.

Fórmula de Euler:

Estrutura: Estratificada:

� 0-estratos: vértices� 1-estratos: arestas� 2-estratos: faces

v-e+(f-fh)=2S-2Sh⇔

v=1f=1C=1Cc=1

v=4e=4f=2C=1Cc=1

Manifold B-Rep

12

void mvfs (Vertex**, Face**, Shell**,Point*);void mvfs (Shell*,Vertex**, Face**, Shell**,Point*);

void mvfh (Face*, Vertex**,Point*);

void mve (Vertex*, Edge*, Edge*, Vertex**, Edge**,Point*);void mve (Edge*, Vertex**, Edge**,Point*);void mve (Vertex*, Edge*, Face*, Vertex**, Edge**,Point*);

void mef (Vertex*, Vertex*, Face*, Edge**, Face**);void mef (Vertex*, Vertex*, Edge*, Edge*, Face*, Edge**, Face**);void mef (Vertex*, Edge*, Edge*, Face*, Edge**, Face ** );

void mekfh (Vertex*, Vertex*, Face*, Edge**);void mfkfhsh (Edge*, Face**);void mfskfh (ShellType, Edge*, Face**, Shell**);

Operadores de Euler:makers

13

void kvfs (Shell*);

void kvfh(Vertex**);

void kve(Vertex**,Edge**);

void kemfh(Edge**);

void kef(Edge**,Face**);

void kfmfhsh(Face*, Face*);

void kfsmfh (Face*, Shell*, Face*);

Operadores de Euler:killers

14

Princípios:– A vizinhança de qualquer ponto dum objecto é homeomorfa a R2.– A inserção dum estrato só pode ser feita após os seus estratos fronteiros.– Os estratos são limitados, i.e. tem mensuravelmente finitos.

Fórmula de Euler:

Estrutura:Estratificada:

� 0-estratos: vértices� 1-estratos: arestas� 2-estratos: faces� 3-estratos: volumes

v=2e=1f=1C=1Cc=1

v=5e=6f=4fh=1C=1Cc=1

v-e+(f-fh)-(s-sh+sc)=C-Ch+Cc

Non-Manifold B-Rep

15

[v-e+(f-fh)-(s-sh+sc)]+[-e∞+(f∞-f∞h)-(s∞-s∞h+s∞c)]=[C-Ch+Cc]+[-E∞+(F∞-F∞h)-(S∞-S∞h+S∞c)]

v=2e=1f∞=1C=1

v=1e=2f=2C=1

Princípios:– A vizinhança de qualquer ponto dum objecto é homeomorfa a R2.– A inserção dum estrato só pode ser feita após os seus estratos fronteiros.– Os estratos são limitados, i.e. tem mensuravelmente finitos.

Fórmula de Euler:

Estrutura:Estratificada:

� 0-estratos: vértices� 1-estratos: arestas� 2-estratos: faces� 3-estratos: volumes

Non-Manifold B-Repcom fronteira incompleta

16

mvC meCh mfkCh

meCh

mfkCh

Exemplo:

17

Sobrevisão:Representações de Sólidos

B-Rep (boundary representation) CSG (Constructive Solid Geometry) Voxels Quadtrees & Octrees BSP (Binary Space Partitions)

18

Princípios:–Cada objecto primitivo é o resultado da combinaçãobooleana de um ou mais semi-espaços semi-algébricosde R3.–Cada objecto composto é o resultado da combinaçãobooleana de um ou mais objectos primitivos.

Modelo matemático:Álgebra booleana de objectos semi-algébricos(A,Ω), em que A é a classe de objectos semi-algébricos e Ω={∪,∩,-}

Estrutura:-Não estratificada-Cobertura de objectos primitivos:

� paralelipípedo (box); cone (cone)� cilindro (cylinder); esfera (sphere)� cunha (wedge); toro (torus)

z≥0

z≤20

x2+y2≤9

x2+y2≤9z≥0z≤20

definição da primitiva cilindro

CSG (Constructive SolidGeometry)

19

esfera-elipsóide cilindro-tubo cone-cone truncado toro-anel

paralelipípedorectangular

prisma-cumha superfície de revolução plano-semiespaço

Objectos CSG primitivos

20

BA

A ∪ B

BA

A - B

BA

A ∩ B

CSG - álgebra booleana desólidos

21

// CSG Node Types#define CSG_PRIM 0#define CSG_COMP 1

// CSG Operation Structuretypedef struct CsgComp{

char op;struct CsgNode *lft, *rgt;

} CsgComp;

// CSG Tree Nodetypedef struct CsgNode{

int type;union { struct CsgComp c; struct Prim *p;

} u;} CsgNode;

U

Estrutura de dados CSG

22

// CSG Node Types#define CSG_PRIM 0#define CSG_COMP 1

// CSG Operation Structuretypedef struct CsgComp{

char op;struct CsgNode *lft, *rgt;

} CsgComp;

// CSG Tree Nodetypedef struct CsgNode{

int type;union { struct CsgComp c; struct Prim *p;

} u;} CsgNode;

// Primitive ConstructorCsgNode *csg_prim(Prim *p){

CsgNode *n = (CsgNode *)NEWSTRUCT(CsgNode);

n->type = CSG_PRIM;n->u.p = p;return n;

}

// Composite ConstructorCsgNode *csg_link(int op, CsgNode *lft, CsgNode *rgt){

CsgNode *n = NEWSTRUCT(CsgNode);n->type = CSG_COMP;n->u.c.op = op;n->u.c.lft = lft;n->u.c.rgt = rgt;return n;

}

Fonte: http://w3.impa.br/~lvelho/i3d00/lectures/model/node3.html

Estrutura de dados CSG

23

Sobrevisão:Representações de Sólidos

B-Rep (boundary representation) CSG (Constructive Solid Geometry) Voxels Quadtrees & Octrees BSP (Binary Space Partitions)

24

vértebravoxelizada

fémurvoxelizado

http://fam.uni-paderborn.de/Applied_Mechanics/Research/modelling_based_on_ct-data.html

Estrutura:-Partição dum subespaço rectangular de R3 numa grelha uniformede células rectangulares ou voxels (à semelhança dos pixels)-Cada voxel armazena um conjunto de atributos:

� ocupação � cor � densidade � temperatura, etc.Dispositivos de aquisição:-MRI (Magnetic Resonance Imaging)-CAT (Computed Axial Tomography)Simulação:-FEM (Finite Element Method/Modeling)Vantagens:-Representação simples, intuitiva e não-ambígua-A mesma complexidade para todos os objectos-Aquisição natural para algumas aplicações-Operações booleanas triviaisDesvantagens:-Representação aproximada-Requer quantidades elevadas de memória-Visualização lenta

Voxels

25Fonte: Graphics Lab - Korea University

Operações booleanasde voxels

26

Sobrevisão:Representações de Sólidos

B-Rep (boundary representation) CSG (Constructive Solid Geometry) Voxels Quadtrees & Octrees BSP (Binary Space Partitions)

27

Estrutura:-Partição adaptativa do espaço numa grelha não-uniforme de célulasrectangulares designadas por quadtree (em R2) ou octree (em R3)Vantagens:-Representação concisa, ou seja, requer menos memória-Operações booleanas menos triviaisDesvantagens:-Representação aproximada-Visualização também lenta

quadtreevoxel

Fonte: Graphics Lab - Korea University

Quadtrees & Octrees

28Fonte: Graphics Lab - Korea University

Operações booleanas dequadtrees

29

Conclusão:Representações de Sólidos

B-Rep (boundary representation) CSG (Constructive Solid Geometry) Voxels Quadtrees & Octrees BSP (Binary Space Partitions)

FIM