Manipulação/Processamento
de Imagens
1 |
3 |
6 |
1 |
3 |
6 |
1 |
3 |
6 |
1 |
3 |
6 |
Crie uma rotina para suavizar uma imagem. Defina você mesmo a matriz de suavização. Assuma a existência da rotina LeCor(x,y, R,G,B) capaz de ler as componentes R, G e B de um ponto (x,y) da imagem.
Explique como funciona o algoritmo de Vetorização de uma Imagem
Explique como funciona a técnica de detecção de bordas.
IMAGEM 100 165 165 125 | MATRIZ DE DIFUSÃO 40% 40% 20% |
-1 |
-1 |
-1 |
-1 |
9 |
-1 |
-1 |
-1 |
-1 |
Suponha um programa de desenho onde a área disponível, na tela, para a exibição dos objetos é de tamanho fixo. Uma das facilidades do programa é a ferramenta de ZOOM. Explique detalhadamente quais as etapas envolvidas no processo de realização do Zoom. Considere deste a marcação da área de zoom, até a reexibição do desenho. Assuma a existência de uma rotina(DesenhaTudo) capaz de reexibir todo o desenho, já realizando o recorte. Explique como são obtidos os valores limites para as janelas de exibição e seleção. Quem informa este valores, o programador ou o usuário ?. Mostre quais as rotinas necessárias para conversão de coordenadas. Voce NÃO precosa criar o código das rotinas, apenas explique em detalhes o que elas fazem.
Explique qual a utilidade da etapa de Instanciamento no processo de visualização bidimensional.
Dê um exemplo em que se possa mostra porque a técnica de Instanciamento pode economizar memória. Assuma que 1 número inteiro ocupa 2 bytes.
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)
Qual a utilidade do algoritmo de recorte de Cohen Sutherland? Mostre 3 exemplos.
Crie
uma rotina para implementar o algoritmo de
recorte de linhas por subdivisão recursiva.
Use o seguinte cabeçalho: Subdivide(X1,
Y1, X2, Y2);
Suponha um programa de desenho onde a área disponível, na tela, para a exibição dos objetos é de tamanho fixo. Utilizando os conceitos de Janela de Seleção(window) e Janela de Visualização como seria possível exibir uma certa parte de um desenho com um tamanho maior na tela ?
Suponha um programa de desenho onde haja disponível, na tela, duas áreas de tamanhos diferentes para a exibição dos objetos. Utilizando os conceitos de Janela de Seleção(window) e Janela de Visualização como seria possível exibir os mesmos objetos em ambas as regiões ?
Considere: todas as etapas do processo de visualização de objetos 2D; uma window delimitada por: xumin=10, xumax=70, yumin=40 e yumax=80; e os seguintes parâmetros de instanciamento, aplicados nesta ordem:
Suponha um programa de desenho onde a área disponível, na tela, para a exibição dos objetos é de tamanho fixo. Utilizando os conceitos de Janela de Seleção(window) e Janela de Visualização como seria possível exibir uma certa parte de um desenho com um tamanho maior na tela ?
Suponha um programa de desenho onde haja disponível, na tela, duas áreas de tamanhos diferentes para a exibição dos objetos. Utilizando os conceitos de Janela de Seleção(window) e Janela de Exibição(viewport) como seria possível exibir os mesmos objetos em ambas as regiões ?
Curvas Paramétricas
Crie 4 pontos e trace uma curva de Catmull-Rom que passe por eles. Calcule as coordenadas do vetores necessários para o traçado. Cuide a nomenclatura e as coordenadas dos vetores e dos pontos.
Defina uma estrutura de dados capaz de guardar os pontos de controle de uma seqüência de curvas Bèzier.
Explique a criação de uma curva Bèzier por 3 pontos a partir da equação paramétrica da reta
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.
Imagine
um sistema em que usuário clique
4 pontos.
Após a marcação destes pontos, o
programa ativa
uma rotina de traçado de curvas Hermite chamada TracaHermite(PA,
PB, VA, VB), que deve
receber o pontos inicial e final da
curva (PA e PB) e os vetores nestes pontos (VA e VB).
Se os pontos clicados pelo usuário fossem P1, P2, P3 e P4,
como
poderia ser a chamada da rotina de traçado da Hermite.
Faça o código necessário à
chamada.
Trace as curvas Bèzier a partir dos pontos a abaixo.
Crie uma rotina em C "ArrumaCurva (CURVA C[10])" capaz de gerar os dados necessários à manutenção de continuidade de derivada entre todos 10 segmentos de uma curva Bèzier. Mostre com desenhos e apresente as fórmulas usadas. Tome muito cuidado com a nomenclatura dos vetores e dos pontos. Imagine que os 10 segmentos Bèzier estão em uma estrutura como:
typedef struct
{
XYR p[4];
} CURVA;CURVA Curvas[10];
Trace as curvas Hermite a partir dos pontos e vetores a abaixo.