Buscar

CG aula13 modelagem camadas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução
• A modelagem em camadas de um objeto (esfera, cilindro, cone, etc.) cria
um objeto primitivo centrado na origem, onde os vértices situam-se sobre
camadas de formato definido (normalmente circunferências)
A estrutura do objeto primitivo irá requerer parâmetros adicionais: um índice 
correspondente ao número de camadas (nc) e outro índice correspondente 
aos vértices existentes nas camadas (nvc).
Basicamente o processo ocorre em três etapas:
 São feitos cortes nos objetos definindo camadas
 Em cada camada são distribuídos um número fixo de vértices
 Os vértices entre camadas e nas próprias camadas são ligados
Comp Graf II - Camadas -
Comp Graf II - Camadas -
R
X
Y
Z
Vértice do topo
Camada da base
H
Modelagem do Objeto Cone
A representação por camadas de um cone utiliza um cone primitivo centrado na origem, de 
altura H, onde a base é formada por uma camada de vértices situados sobre a circunferência 
de um círculo de raio R. Para simplificar o processo, é atribuído o vértice do topo. 
Y0=-H/2
Y1=H/2
Comp Graf II - Camadas -
j.
Eixo X
eixoZ
z
x
R
Modelagem do Objeto Cone
Para a circunferência de raio “R” da camada de base do cone de altura H, existem “nvc” vértices.
Para um vértice “j” qualquer da base tem-se:
x = R cos(j.) y = -H/2 z = R sin(j.); onde j varia de 0 até nvc
O método drawCone irá calcular os valores x, y e z dos vértices do cone padrão utilizando a estrutura
mostrada na figura abaixo:
void drawConeSimple(int nvc, float height, float radius)
{
double alfa = 2.0 * M_PI / nvc; // incremento do angulo em radianos
int j; 
GLfloat y0 = -0.5 * height; // altura da camada da base
GLfloat y1 = 0.5 * height ; // altura da camada do topo
glBegin(GL_TRIANGLE_FAN);
glVertex3f(0, y1, 0); // vértice do topo
for (j = 0; j <= nvc; ++j) { // loop de vertice por camada
double angulo = j * alfa;
GLfloat x = radius * cos(angulo);
GLfloat z = radius * sin(angulo); 
glVertex3f(x, y0, z);
}
glEnd();
}
Comp Graf II - Camadas -
R
X
Y
Z
Camada do topo
Camada da 
base
H
Modelagem do Objeto Cilindro
A representação por camadas de um cilindro utiliza um cilindro primitivo centrado na 
origem, onde as duas camadas de vértices situam-se sobre a circunferência de dois círculos 
de mesmo raio R. 
Comp Graf II - Camadas -
Modelagem do Objeto Cilindro
Para a circunferência de raio “R” da camada de base ou de topo do cilindro de altura H, existem
“nvc” vértices.
Para um vértice “j” qualquer da base tem-se:
x = R cos(j.) y = -H/2 z = R sin(j.); onde j varia de 0 até nvc
Para um vértice “j” qualquer do topo tem-se:
x = R cos(j.) y = +H/2 z = R sin(j.); onde j varia de 0 até nvc
O método drawCilindro irá calcular os valores x, y e z dos vértices do cone padrão utilizando a
estrutura mostrada na figura abaixo:
j.
Eixo X
eixoZ
z
x
R
void drawCylinder(int nvc, float height, float radius)
{
double alfa = 2.0 * M_PI / nvc; // incremento do angulo em radianos
int j;
GLfloat y0 = -0.5 * height; // altura da camada de base
GLfloat y1 = 0.5 * height; // altura da camada de topo
glBegin(GL_QUAD_STRIP);
for (j = 0; j <= nvc; ++j) { // loop de vertice por camada
double angulo = j * alfa;
GLfloat x = radius * cos(angulo);
GLfloat z = radius * sin(angulo); 
glNormal3f(x, 0.0, z);
glVertex3f(x, y0, z);
glVertex3f(x, y1, z);
}
glEnd();
}
Modelagem do Objeto Esfera
• A representação por camadas de uma esfera pode ser feita através da
matriz com parâmetros de camadas e vértices por camada:
Comp Graf II - Camadas -
esferaObj(36, 36, 2) 
Coordenadas (x, y e z)
Vértices por camada
Camadas
X
Y
Z
Comp Graf II - Camadas -
Modelando a esfera
• Considere uma esfera centrada na origem como um objeto default e 
construída segundo o modelo B-Rep. Esta esfera pode ser vista como 
composta de vários círculos:
X
Y
Z
Comp Graf II - Camadas -
Modelando a esfera
• Os círculos horizontais 
fatiam um círculo vertical em 
seções cujo perfil é:
• O processo, portanto, eqüivale a dividir 
o círculo em várias partes iguais. Como o 
círculo possui 360º, se for dividido em “n” 
partes, cada parte terá um setor de:  = 
360º / n
X
Y

X
Y
Comp Graf II - Camadas -
Modelando a esfera
• Considerando o raio da esfera 
igual a “R”, para um vértice 
qualquer localizado no ângulo k. 
situado na circunferência de raio 
igual a rx = R cos (k. ), a 
coordenada y seria a mesma e 
igual a: y = R sin (k. )
k.
rx
y
X
Y
R
m.
X
Z
z
x
rx• Para a circunferência de raio “rx” 
existem “n” vértices.
• Para o vértice “m” tem-se:
x = rx cos(m.)
z = rx sin(m.)
Comp Graf II - Camadas -
Incluindo método para Calculo dos pontos da esfera (exemplo VB6)
Public Sub CalcEsfera()
Const Pi As Double = 3.141592
Dim nc As Integer
Dim nvc As Integer
glbR = 1#
nvc = Objeto(glbNextObj).nVCamadas
nc = nvc
alfa = (2 * Pi) / nc
For i = 0 To nvc
esferaObj(0, i, 0) = 0
esferaObj(0, i, 1) = glbR
esferaObj(0, i, 2) = 0
Next i
angulo = Pi / 2
For k = 1 To nc
angulo = angulo - alfa
rx = glbR * Cos(angulo)
yc = glbR * Sin(angulo)
For i = 0 To nvc
esferaObj(k, i, 0) = rx * Cos(i * alfa)
esferaObj(k, i, 1) = yc
esferaObj(k, i, 2) = rx * Sin(i * alfa)
Next i
Next k
End Sub
k.
rx
y
X
Y
R
m.
X
Z
z
x
rx
Comp Graf II - Camadas -
Exercício: Desenvolver o método Esfera
em linguagem C e Open GL
k.
rx
y
X
Y
R
m.
X
Z
z
x
rx

Outros materiais