Escolar Documentos
Profissional Documentos
Cultura Documentos
OpenGL
Sumário
• Breve revisão sobre OpenGL;
• Mais exemplos de programas OpenGL;
• Sistemas de Coordenadas;
• Transformadas Geométricas (rotação,
translação, shear e mudança de escala);
• Coordenadas Homogêneas;
• Transformadas Geométricas em OpenGL;
• Exemplos;
04/06/2019 2
Breve revisão sobre OpenGL
04/06/2019 3
Breve revisão sobre OpenGL
• Informações preliminares:
• Cabeçalhos:
– #include<GL/gl.h>
– #include<GL/glu.h>
– #include<GL/glut.h>
• Bibliotecas
• Tipos enumerados:
– OpenGL define numerosos tipos em razão da
portabilidade:
• GLfloat, GLint, GLenum, etc...
04/06/2019 4
Breve revisão sobre OpenGL
• Convenções utilizadas em OpenGL:
• A maioria das funções começa com gl.
– Exemplo: glColor();
04/06/2019 5
Breve revisão sobre OpenGL
• Convenções utilizadas em OpenGL
• Exemplos:
– glColor3f() → utiliza 3 floats;
– glColor4fv() → utiliza um array de 4 floats.
04/06/2019 6
Breve revisão sobre OpenGL
• Convenções utilizadas em OpenGL
04/06/2019 7
Mais exemplos de programas OpenGL
• Existem diversas páginas na Internet que disponibilizam
o código fonte dos programas;
Fonte: http://www.xmission.com/~nate/sgi.html
04/06/2019 8
Mais exemplos de programas OpenGL
• http://isg.cs.tcd.ie/dingliaj/3d4ii/Lab1.html
• http://math.ucsd.edu/~sbuss/MathCG/OpenGLsoft/
• http://www.xmission.com/~nate/sgi.html
• http://www.xmission.com/~nate/es.html
• http://www.essi.fr/~buffa/cours/synthese_image/DOCS/tr
ant.sgi.com/opengl/examples/more_samples/more_sam
ples.html
04/06/2019 9
Sistemas de Coordenadas
• O sistema de coordenadas serve para dar
uma referência em termos de medidas do
tamanho e da posição dos objetos;
04/06/2019 10
Sistemas de Coordenadas
• Sistema de Referência: sistema de
coordenadas cartesianas para alguma
finalidade específica.
• É necessário definir:
– Unidade de referência básica;
– Limites extremos dos valores aceitos para
descrever os objetos.
04/06/2019 11
Sistemas de Coordenadas
Cartesianas
• Por convenção, emprega-se a base Cartesiana:
– Vetores base são mutuamente ortogonais e de
comprimento unitário;
– Vetores base: x, y, z.
04/06/2019 13
Sistemas de Coordenadas
• Alguns sistemas de coordenadas recebem uma
denominação especial:
• Exemplos:
– Sistemas CAD;
– Sistemas de Radar;
04/06/2019 15
Sistemas de Coordenadas
• Sistema de Referência do Objeto (SRO):
– Cada objeto é um miniuniverso individual. Assim,
cada objeto tem suas particularidades descritas em
função de seu próprio sistema.
04/06/2019 16
Sistemas de Coordenadas
04/06/2019 17
Transformadas Geométricas
• A possibilidade de representar um objeto
em várias posições no espaço é
fundamental para compreender sua forma.
• Transformações Geométricas:
04/06/2019 18
Transformação de Translação
• Transladar significa movimentar o objeto.
• Transladamos todos os pontos de um
objeto;
x’ = x + Tx
x’ = x + Tx y’ = y + Ty 3D
2D
y’ = y + Ty z’ = z + Tz
04/06/2019 20
Transformação de Translação
04/06/2019 21
Transformação de Escala
• Escalonar significa mudar as dimensões do
objeto.
• Para fazer essa transformação, multiplicamos
cada coordenada por um fator de escala (S).
Notação Matricial:
04/06/2019 23
Transformação de Escala
04/06/2019 24
Transformação de Rotação
• Rotacionar significa girar;
Rotação de um ponto
P em torno da origem,
passando para a
posição P’.
P(x,y):
x = r cos()
y = r sen()
Fonte: Azevedo e Conci [10], pg. 42.
04/06/2019 25
Transformação de Rotação
• As novas coordenadas serão:
x’ = r. cos ( + );
y’ = r. sen ( + );
x’ = x cos - y sen
Notação Matricial:
y’ = y cos + x sen
04/06/2019 26
Transformação de Rotação
• Essa matriz é denominada matriz de rotação no plano
xy por um ângulo .
• Se o objeto não estiver definido na origem do sistema de
coordenadas, a transformação de rotação acarretará
uma translação do objeto.
04/06/2019 27
Transformação de Rotação
• Para alterar a orientação de um objeto em
torno de um ponto qualquer, sem ter o
efeito da translação, é necessário efetuar
um combinação de transformações.
04/06/2019 28
Transformação de Rotação
• A rotação de objetos tridimensionais
permite que vejamos o objeto de
diferentes posições e ângulos.
• A rotação de um objeto 3D é mais fácil de
ser realizada individualmente em cada um
dos eixos, utilizando os chamados
Ângulos de Euler.
• Cada uma dessas rotações pode ser
obtida por meio de operações nos planos
xy, yz, zx.
04/06/2019 29
Transformação de Rotação
- Ângulos de Euler -
• Os ângulos de Euler facilitam uma
definição precisa das rotações em relação
ao sistema de eixos.
04/06/2019 30
Transformação de Rotação
- Ângulos de Euler -
• Os ângulos de Euler facilitam uma
definição precisa das rotações em relação
ao sistema de eixos.
04/06/2019 31
Transformação de Rotação
- Ângulos de Euler -
• Os ângulos de Euler facilitam uma
definição precisa das rotações em relação
ao sistema de eixos.
04/06/2019 32
Transformação de Rotação
- Ângulos de Euler -
04/06/2019 33
Transformação de Rotação
• A rotação de um ponto no espaço 3D é
obtida multiplicando-se os ângulos de
rotação ao ponto.
Rotação do eixo x
Rotação do eixo y
Rotação do eixo z
04/06/2019 35
Transformação de Rotação
• Exemplo:
04/06/2019 36
Transformadas
Geométricas em OpenGL
• Os vértices que definem
as primitivas
geométricas em
OpenGL são descritos
segundo um sistema de
eixos ortogonais
orientados pela regra da
mão direita:
04/06/2019 37
Transformadas Geométricas em
OpenGL
• O comando para transladar um objeto é:
– glTranslatef(TYPE x, TYPE y, TYPE z);
04/06/2019 39
Transformadas Geométricas em
OpenGL
• O comando para rotacionar um objeto é:
– glRotatef(TYPE angle,TYPE x, TYPE y, TYPE z);
04/06/2019 40
Transformadas Geométricas em
OpenGL
04/06/2019 41
Atividade 5 – entrega: dia da prova (manuscrito)
Considerando as figuras geométricas expressas pelos pontos de cada questão
abaixo. Pede-se:
a) Desenhe a figura num plano 2D.
b) Realize a transformação pedida.
c) Redesenhe a figura num plano 2D (no plano da questão ‘a’ se houver espaço).
04/06/2019 42
Exercícios didático
• Procure exemplos de nível básico e
intermediário. Compile-os e faça
modificações nestes programas para
aprender a utilizar a biblioteca gráfica.
04/06/2019 43
Referências
1. FOLEY, J. D.; VAM DAM, A.; FEINER, S. K.; HUGHES, J. F. Computer
graphics: principles and practice. 2. ed. Addison-Wesley, 1992.
2. HARRINGTON, S. Computer graphics: a programming approach. New York
: McGraw-Hill, 1987.
3. PLASTOK, R. A. & Kalley, G. Computação gráfica. São Paulo : McGraw-
Hill, 1987.
4. WATT, A. 3D Computer graphics. 2. ed. Reading : Addison-Wesley, 1993.
5. HILL, F. S. Jr. Computer Graphics using OpenGL. Prentice Hall Book
Company, 2001.
6. ANAND, V. B. Computer Graphics and Geometric Modelling for Engineers.
John Wiley & Sons, 1993.
7. HEARN, D. D. & BAKER, M.P. Computer Graphics. Prentice Hall, 1997.
8. WOOD et al. OpenGL(R) Programming Guide. Addison-Wesley, 1999.
9. ANGEL, E. Interactive Computer Graphics: A top-down approach with
OpenGL. Addison-Wesley, 2000.
10. AZEVEDO, E. & CONCI, A. Computação Gráfica-Teoria e Prática. Editora
Campus, 2003
04/06/2019 44