Cap.8: Estruturas Geométricas - di.ubi.ptagomes/cg/teoricas/08-estruturas.pdf · 1 Cap.8:...
Transcript of Cap.8: Estruturas Geométricas - di.ubi.ptagomes/cg/teoricas/08-estruturas.pdf · 1 Cap.8:...
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
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
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
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
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