LISTA DE EXERCÍCIOS - Computação Gráfica 98/I
Lista 1
POLÍGONOS
1.Observe o polígono da figura a seguir e você verá que: o produto vetorial resulta em um vetor de coordenadas (0, 0, z1) onde z1 é positivo; o produto vetorial resulta em um vetor de coordenadas (0, 0, z2) onde z2 é negativo.
A partir disto crie uma rotina que seja capaz de determinar se um polígono é concavo ou convexo.
ClassificaPoligono(int num_vert, XYR *pontos)
{
/* a rotina deve retornar 1 quando o polígono for convexo e 0 quando
for côncavo */
}
2.Explique como se pode usar o produto vetorial para determinar a inclusão de um ponto em um polígono. Diga a que tipo de polígono aplica-se o método, e porque não se pode aplica-lo a polígonos de qualquer tipo, se for o caso.
3.Mostre como funciona rotina de preenchimento de polígonos, quais seus casos especiais e como resolvê-los.
4.Baseado na equação do círculo,
com se pode preenche-lo usando a mesma estrutura de dados usada para preencher
polígonos?
Eq. do Círculo:
5.Utilizando a estrutura de dados denominada bucket, vista em aula, e supondo que ela já está totalmente preenchida com os dados de um polígono qualquer, pinte o polígono. Defina e estrutura você mesmo.
6.Faça uma rotina capaz de preencher um bucket com os dados de 1 aresta. Supondo que esta já não seja a primeira do polígono, ou seja, a estrutura já possui alguns elementos. Defina e estrutura você mesmo.
WARP
7.Explique a diferença entre mapeamento direto e mapeamento Inverso.
8.Como funciona o método de distorção de imagens por Warp. Porque não se deve usar mapeamento direto.
9.Imagine que o retângulo (0,0)-(10,10) transformou-se no retângulo (15, 15)-(20,35).Mostre a seqüência de passos a serem dados para mapear uma imagem do primeiro para o segundo usando mapeamento inverso. Se desejar, use os nomes das rotinas que serão fornecidas para o trabalho 1.
GEOMETRIA COMPUTACIONAL
10.Explique como funciona o método da dominância para problemas de contagem geométrica.
11.Explique como funciona o método das faixas para problemas de inclusao de pontos.
CURVAS
12.Defina uma estrutura de dados capaz de guardar os pontos de controle de uma seqüência de curvas Bèzier.
13.Explique a criação de uma curva Bèzier por 3 pontos a partir da equação paramétrica da reta.
14.Trace curvas Spline e Bèzier (de 4 pontos) a partir dos 9 pontos de controle dados a seguir.
15.Altere os pontos necessários para que ambas traçados tenham continuidade de derivada.
16.Como se pode garantir continuidade de derivada entre dois segmentos de curva Bèzier. Mostre com desenhos e apresente as fórmulas para o cálculo dos vetores. Tome muito cuidado com a nomenclatura dos vetores e dos pontos. Crie uma rotina para gerar o(s) dados(s) necessários a manutenção da continuidade.
17.Quais as características das curvas Hermite ? Quais seus usos ? Dê exemplos de curvas.
18.Compare os tres tipos de curvas paramétricas apresentando as vantagens e desvatagens de cada uma.
19.Trace as curvas Hermite a partir dos pontos e vetores a abaixo.
20.Trace as curvas Bèzier a partir dos pontos a abaixo.
VISUALIZAÇÃO 2D
21.Desenhe na Viewport a abaixo o triângulo (10,10)-(20,50)-(30-10). Estas coordenadas referem-se ao modelo do triângulo no universo. Considere cada uma das windows especificadas.
Window : (0,0)-(100,200)
Window : (0,0)-(200,100)
Window : (0,0)-(1000,60)
22.Explique o processo de visualização bidimensional visto em aula. Descreva cada passo, seus parâmetros de entrada e suas saídas.
23.Qual a utilidade do algoritmo de recorte de Cohen Sutherland? Mostre no exemplo a seguir
IMAGENS
24.Execute na imagem a seguir o algoritmo de difusão de erro
25.Execute na imagem a seguir o algoritmo de halftone (matriz 2x2)
26.Execute na imagem a seguir o algoritmo de dither (matriz 2x2)
27.Considere, nos três casos que a imagem pode ter 10 tons de cinza(0 a 9)
1 |
3 |
6 |
1 |
3 |
6 |
1 |
3 |
6 |
1 |
3 |
6 |
28.Crie uma rotina capaz de imprimir um ponto usando a técnica de Halftone. Armazene apenas uma matriz. Não use uma matriz diferente para cada cor, nem faça um grande switch.
29.Esboce um algoritmo para suavizar as bordas de uma imagem true-color
30.Esboce um algoritmo para detectar as bordas de um imagem em tons de cinza