You are on page 1of 10

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

DEPARTAMENTO DE INFORMÁTICA

COMPUTAÇÃO GRÁFICA

PROFESSOR : ARIANGELO HAUER DIAS

CADERNO DE ATIVIDADES

Abril - 2007
AULA

1. SISTEMA DE COORDENADAS

Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em


um sistema 2D. O sistema de coordenadas serve para nos dar uma referência em termos de
medidas do tamanho e posição dos objetos dentro de nossa "área de trabalho".
Um determinado sistema de coordenadas é denominado de Sistema de Referência de
Coordenadas. Ao definirmos um sistema de referência de coordenadas, devemos especificar
dois aspectos principais : a unidade de referência básica e os limites extremos dos valores
aceitos para descrever os objetos.
Exemplos de sistemas de coordenadas (unidade de trabalho), que podemos utilizar : - Escala
em milímetros, - Escala em centímetros, - Escala em kilômetros
- Escala em "unidades de medida" (genérica). Neste caso a determinação da unidade real é feita
em um momento posterior, o objeto é todo descrito em termos de uma unidade genérica, mas
mantendo mesmo assim as suas relações de posição e tamanho

1.01. Sistema de Referência do Objeto (SRO) :


Neste sistema de referência fazemos com que cada objeto seja um universo individual, ou seja,
cada objeto tem suas coordenadas descritas em função de um ponto extremo deste. As
coordenadas são relativas ao próprio objeto, são relativas a uma extremidade do objeto.
Exemplo:

Sistema de referência do objeto

1.02. Sistema de Referência do Universo (SRU) ou WCS:


Descrição dos objetos em termos de coordenadas do universo. O universo é o sistema de
referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo
usuário. Sendo assim, cada usuário especifica o seu universo (mundo) de trabalho, por exemplo,
para sistemas de CAD de arquitetura o universo deverá ser metros ou centímetros e para um
CAD de mecânica o universo provavelmente será em milímetros, bem como cada um destes
sistemas de CAD deverá ter suas limitações extremas (coordenadas mínimas e máximas do
universo).
Departamento de Informática
Prof. Reinaldo Afonso Mayer
Computação Gráfica 3
Prof. Ariangelo Hauer Dias
AULA

Exemplo : Universo de trabalho --> Escala em milímetros


Limites da área de trabalho : X - 0 à 100000
(Valores inteiros) Y - 0 à 100000

Sistema de referência do universo

1.03. Sistema de Referência Normalizado (SRN) :


Trabalha com as coordenadas normalizadas, onde 0 < X < 1 e 0 < Y < 1, sendo que ambos
os eixos tem suas coordenadas expressas por números reais. Serve como um sistema de
referência intermediário entre o SRU e o SRD. Sua principal aplicação é tornar a geração das
imagens independentes de dispositivo, pois as coordenadas de universo são convertidas para o
SRN que é um sistema de coordenadas padrão (normalizado), necessário para as operações.

1.04. Sistema de Referência do Dispositivo (SRD) :


Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída
específico. Usualmente denominamos a saída no vídeo como sendo uma saída que utiliza-se do
SRT (sist. de refer. da tela). Exemplos :
Vídeo CGA : X = 0 à 639, Y = 0 à 479, numa tela 640 X 480

WCS
ywmax
NDCS PDCS
1 yvmax
enquadramento
janela N
W

ywmin
yvmin
0
xwmin xwmax 0 1 xvmin xvmax

2. OPERAÇÕES PARA EXIBIÇÃO DE MODELOS


TRANSFORMAÇÕES : De acordo com Venetianer( 1988, p. 154), todo pacote gráfico
opera três tipos de transformações : As de segmentos ou geométrica, a normalizada e a de
estação.
Transformações de segmento ou geométricas: As transformações geométricas
são operações suplementares que podem ser utilizadas visando a alteração de algumas das
4 Computação Gráfica Departamento de Informática
Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

características - posição, orientação, tamanho - do objeto a ser desenhado. Normalmente são


utilizadas quando se trabalha sobre o Sistema de Referência do Objeto - SRO.
Transformação normalizada: converte parâmetros para SRN, guardando características
independentes do dispositivo.
Transformação de estação: Estabelecem a visualização da imagem nos dispositivos de
visualização, de acordo com imposições físicas dos dispositivos.
Os processos de manipulação de imagens apresentados pelos sistemas gráficos devem dar a
impressão aos seus usuários de que estes estão observando uma imagem através de uma
pequena janela retangular, como uma câmera de TV (aproximando-se, afastando-se ou girando
a câmera.
A esta área do universo que delimita a região de interesse do usuário em um
dado instante chama-se JANELA DE SELEÇÃO ou WINDOW. Uma window é
delimitada pelas coordenadas de seus cantos( inferior-esquerdo e superior-
direito), os quais são dados, sempre, em valores que dizem respeito ao
Sistema de Referência do Universo (SRU).
Quando há, no universo, objetos (entidades) que ficam, total ou parcialmente, fora da Janela de
Seleção (window) definida para visualização é preciso não exibí-los, como mostra a figura a
seguir:

De forma análoga ao que foi feito para o Universo quando se delimitou, com a Janela de
Seleção, a região de interesse do usuário, é possível definir em que parte da tela deseja-se exibir
o que foi delimitado. A esta região dá-se o nome de JANELA DE EXIBIÇÃO OU VIEWPORT.
Uma viewport é delimitada pelas coordenadas de seus cantos, os quais são dados, sempre, em
valores que dizem respeito ao Sistema de Referência da Tela ( SRT ).
RECORTE: Ao processo de retirada dos objetos que não estão dentro da Janela de Seleção dá-
se o nome de RECORTE. Sendo assim, com a inclusão do procedimento de recorte, o processo
de visualização bidimensional fica esquematizado da seguinte maneira:
O recorte de pontos, linhas e caracteres para o caso de uma window está ilustrado na figura
abaixo:

Departamento de Informática
Prof. Reinaldo Afonso Mayer
Computação Gráfica 5
Prof. Ariangelo Hauer Dias
AULA

Os recortes de pontos, linhas e caracteres são


tratados POR ALGORÍTMOS ESPECIAIS, que
serão tratados oportunamente na sua forma de
implementação..

Diferentes bibliotecas gráficas utilizam esquemas diversos de transformações e mapeamento de


coordenadas. No caso de uma biblioteca gráfica que utiliza primitivas gráficas bidimensionais,
como o GKS (Graphical Kernel System), por exemplo, o modo de mapeamento é realizado
através da definição de duas transformações. No GKS, especificado os limites da área de
trabalho do usuário, cujo espaço é denominado de coordenadas de mundo, um retângulo em
seu interior define a área de interesse para a visualização. Um segundo retângulo define o
espaço das coordenadas normalizadas, na qual o retângulo é mapeado através da transformação
de normalização. Nesta etapa pode se habilitar ou não operações de recorte (clipping) bem
como de preservação ou não de relações de aspecto (aspect ratio), ou seja, o objeto original a
ser exibido pode ser achatado ou esticado ou mantido com suas proporções iniciais inalteradas.
A transformação de dispositivo MAPEIA as coordenadas de um retângulo definido no espaço
das coordenadas normalizadas no das coordenadas de dispositivo. Nesta fase, não são
permitidas operações de recorte e de alteração da relação de aspecto.
MAPEAMENTO: Para permitir então a visualização deste tipo de entidade (modelos) faz-se
necessário realizar CÁLCULOS para conversão dos valores do modelo para valores
compatíveis com as dimensões da tela. A esta conversão dá-se o nome de MAPEAMENTO. Um
exemplo onde é necessária uma operação de mapeamento pode ser visto na figura a seguir.

6 Computação Gráfica Departamento de Informática


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

Há, no exemplo acima, dois sistemas de coordenadas distintos, um referente à aplicação e


outro referente à tela. O primeiro é dito Sistema de Referência da Aplicação ou do Universo
(SRU) e o segundo, Sistema de Referência da Tela ou do Dispositivo (SRT ou SRD).
Para se realizar o mapeamento entre estes dois Sistemas de Referência tomamos um ponto Pu
de coordenadas (Xu, Yu), no SRU e tentamos obter seu correspondente (Xt, Yt) no SRT, ou
seja, na tela. Iniciando pela componente X temos, de acordo com o seguinte diagrama:

Departamento de Informática
Prof. Reinaldo Afonso Mayer
Computação Gráfica 7
Prof. Ariangelo Hauer Dias
AULA

3. COMANDOS BÁSICOS OPENGL


As funções glEnable e glDisable habilitam ou desabilitam funcionalidades do Opn GL.
GL_ALPHA_TEST Permite a utilização de funcionalidades ALFA.
GL_AUTO_NORMAL Faz os cálculos inerentes aos vetores que
constituem uma superfície quando são
utilizados tanto GL_MAP2_VERTEX_3
quanto GL_MAP2_VERTEX_4 para gerar
vértices.
GL_BLEND Permite que misturar códigos RGBA com os
valores utilizados no buffer de cores.
GL_CLIP_PLANEi Promove a possibilidade da união do recorte
defnido pelo usuário com aquele que foi
definido automaticamente pelo plano i.
GL_COLOR_MATERIAL Permite a especificação de um ou mais, para
que estes sejam anexados ao esquema atual
de cores.
GL_DEPTH_TEST Permite que sejam realizadas comparações de
profundidade para que desta forma seja
possível estabelecer comparações de
profundidade entre os vértices.
GL_DITHER Permite a utilização de recursos de
pulverização de cores.
GL_FOG Quando utilizado permite que sejam
utilizados recursos de pós-texturização
GL_LIGHTING Gera a possibilidade da utilização de fontes de
iluminação e respectivas equações de
tratamento das mesmas.
GL_LINE_SMOOTH Quando habilitado permite o desenho das
linhas utilizando o filtro correto.

A função gluPerspective estabelece a forma de projeção da matriz de perpectiva.


void gluPerspective(
GLdouble fovy,
GLdouble aspect,
GLdouble zNear,
GLdouble zFar
);

8 Computação Gráfica Departamento de Informática


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

Parâmetros:
fovy: especifica o valor em graus com a direção y.
determina o aspecto da visualização em relação a direção x. (o aspecto e a relação
aspect:
entre x (largura) e y (altura).
especifica a distância entre o observador até o plano de visualização (sempre
zNear:
positivo).
zFar: especifica a distância entre o observador e o plano mais distante (sempre positivo).
A função glClear limpa o buffer da janela de visualização.
void glClear(
GLbitfield mask
);
Parâmetros:
Mask: Mascara de bits que indica como o buffer do desenho será atualizado. Exitem
quatro valores possíveis para este gerenciamento.
GL_COLOR_BUFFER_BIT: gerencia a cor do BIT.
GL_DEPTH_BUFFER_BIT: gerencia a cor da profundidade do BIT.
GL_ACCUM_BUFFER_BIT: gerencia a cor do buffer de acumulação.
GL_STENCIL_BUFFER_BIT: gerencia a cor do buffer tipo stencil.
A função glPolygonMode seleciona o modo de rasterização do polígono que foi desenhado.
void glPolygonMode(
GLenum face,
GLenum mode
);
Parâmetros:
Especifica o modo de como o modo será aplicado ao polígono, pode ser
face:
GL_FRONT, GL_BACK ou GL_FRONT_AND_BACK.
Especifica a forma de rasterização, os valores aceitos são: GL_POINT, GL_LINE
mode:
eGL_FILL. O valor default é GL_FILL.
Os procedimentos glPushMatrix e glPopMatrix empilham e desempilham a matriz que
representam os polígonos.
void glPushMatrix( void );
void glPopMatrix( void );
Os procedimentos glTranslated e glTranslatef multiplicam a matriz de coordenadas do polígono
pela matriz de translação.
void glTranslated(
GLdouble x,
GLdouble y,
GLdouble z
);
Departamento de Informática
Prof. Reinaldo Afonso Mayer
Computação Gráfica 9
Prof. Ariangelo Hauer Dias
AULA

void glTranslatef(
GLfloat x,
GLfloat y,
GLfloat z
);
Parâmetros:
x, y, z: especificam as coordenadas para a matriz de translação

Os procedimentos glRotated e glRotatef multiplicam a matriz de coordenadas do polígono pela


matriz de rotação.
void glRotated(
GLdouble angle,
GLdouble x,
GLdouble y,
GLdouble z
)
void glRotatef(
GLfloat angle,
GLfloat x,
GLfloat y,
GLfloat z
)
Parâmetros:
angle: Especifica o ângulo de rotação em graus.
x, y, z: especificam as coordenadas para a matriz de rotação
Os procedimentos glBegin e glEnd delimitam os vértices de uma primitiva ou conjunto de
primitivas.
void glBegin( GLenum mode );
void glEnd( void );
Parâmetros:
mode: As seguintes constantes simbólicas podem ser utilizadas:
GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES,
GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, e
GL_POLYGON.

10 Computação Gráfica Departamento de Informática


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias

You might also like