Baixe o app para aproveitar ainda mais
Prévia do material em texto
Primeira Lista de Exercícios Teóricos 1) O que se entende por Computação Gráfica? Como essa área do conhecimento se relaciona com as demais áreas correlatas, como, por exemplo, Processamento Digital de Imagens? A Computação Gráfica é a área da Ciência da Computação que estuda a geração, manipulação e interpretação de modelos e imagens de objetos utilizando computador. Tais modelos vêm de uma variedade de disciplinas, como física, matemática, engenharia, arquitetura, etc. Pode-se relacionar a Computação Gráfica com 3 sub-áreas. ● Síntese de Imagens: área que se preocupa com a produção de representações visuais a partir das especificações geométrica e visual de seus componentes. É frequentemente confundida com a própria Computação Gráfica. As imagens produzidas por esta sub-área são geradas a partir de dados mantidos nos chamados Display FIles. ● Processamento de Imagens: envolve as técnicas de transformação de Imagens, em que tanto a imagem original quanto a imagem resultado apresentam-se sob uma representação visual (geralmente matricial). Estas transformações visam melhorar as características visuais da imagem (aumentar contraste, foco, ou mesmo diminuir ruídos e/ou distorções). As imagens produzidas/utilizadas por esta su-área são armazenadas/recuperadas dos chamados Raster Files. ● Análise de Imagens: área que procura obter a especificação dos componentes de uma imagem a partir de sua representação visual. Ou seja, a partir da informação pictórica da imagem (a própria imagem) produz uma informação não pictórica da imagem (por exemplo, as primitivas geométricas elementares que a compõem). 2) Cite exemplos corriqueiros do uso da computação gráfica nos dias atuais. a) CAD b) Apresentações gráficas c) Arte por computador d) Entretenimento e) Educação e treinamento f) Visualização científica 3) O que se entende por dispositivos gráficos? Os dispositivos gráficos permitem a interação dos usuários com as aplicações gráficas. Dispositivos gráficos de entrada são aqueles cuja função é capturar informações para as aplicações. Os de processamento apresentam arquiteturas especiais destinadas à manipulação de objetos gráficos. Os de saída são aqueles responsáveis por permitir a exibição de objetos gráficos. 4) Discuta as principais diferenças entre dispositivos gráficos vetoriais e dispositivos gráficos matriciais; considere os casos de dispositivos de entrada e de saída. A principal diferença entre esses dispositivos é a maneira em que desenham as figuras, no qual dispositivos gráficos vetoriais, por meio de traçados de segmentos de retas, permite a construção de uma figura. Por outro lado, dispositivos de gráficos matriciais realizam a construção da figura por meio do preenchimento de uma matriz através de entradas que possuem largura e altura fixas. 5) Qual é considerada a melhor combinação de dispositivos gráficos vetoriais e matriciais levando em conta as tecnologias atuais, conforme discutido em sala de aula? Uma combinação entre os dispositivos gráficos vetoriais e matriciais consistem em usar os dispositivos gráficos vetoriais em dispositivos de entrada e utilizar os dispositivos matriciais em dispositivos de saída. 6) Por que os algoritmos de conversão de primitivas gráficas vetoriais para dispositivos matriciais são importantes na área de Computação Gráfica? Com a utilização de algoritmos de conversão, pode-se optar pela escolha de qual dispositivo utilizar para representar uma figura, aproveitando assim das vantagens do método utilizado. Além disso, não se tem a limitação de um determinado dispositivo gráfico pelo dispositivo de entrada e saída. 7) O que é um Sistema Gráfico? Qual sua função? Cite alguns exemplos. Sistema gráfico é uma interface entre o software e o hardware gráfico. A interface consiste em um conjunto de procedimentos e funções que permitem a um programador especificar os objetos e as operações que os envolvem produzindo imagens de alta qualidade. A função de um sistema gráfico é padronizar o desenvolvimento de aplicações que utilizam recursos gráficos para que a aplicação possa ser executada em diferentes plataformas. (Ex: XWindow) 8) O que é um Sistema de Referência (SR)? Qual sua função? Discuta os três tipos de SR estudados em sala de aula. Um sistema de referência é um sistema de coordenadas cartesianas que possui alguma finalidade específica, propondo uma unidade de referência básica e os limites extremos dos valores aceitos para descrever um objeto. Entre eles, pode -se citar 4: ● Sistema de referência do universo (SRU): é um sistema de coordenada utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada aplicação. ● Sistema de referência do objeto (SRO): nesse sistema cada objeto possui seu próprio mini universo individual, possuindo assim suas próprias particularidades. ● Sistema de Referência Normalizado (SRN): trabalha com coordenadas normalizadas (valores de 0 e 1) e serve como um sistema intermediário entre o SRU e SRD. Tem como objetivo a geração das imagens independente do dispositivo, pois as coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado. ● Sistema de Referência do Dispositivo (SRD): Utiliza um sistema de coordenada que pode ser fornecida diretamente por um dispositivo de saída. 9) Dado um SR do universo, o que entendemos por “janela de visualização”? Uma janela de visualização é uma área retangular no espaço bidimensional que mostra qual objeto será exibido, delimitado pelas coordenadas dessa janela. É possível definir a janela como sendo maior, do mesmo tamanho ou menor do que os dados a serem exibidos, caso você queira mostrar o objeto todo ou apenas parte dele. 10)Considerando um SR para um dispositivo de visualização arbitrário, o que entendemos por “view-port”? View-port define em coordenadas normalizadas uma área retangular que mostra a localização onde um objeto deve ser exibido, delimitado pelas coordenadas desse dispositivo arbitrário. 11)Qual a função do SR normalizado? Que efeitos esse sistema pode causar sobre os dados oriundos do SRU? O SRN serve como um intermediário entre o SRU e o SRD, e sua principal função é a de tornar a geração das imagens independente do dispositivo, pois as coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado. 12)Faz sentido fazer menção a pontos (abstração matemática) no SRD? Justifique! Da mesma forma, podemosfazer alguma referência à entradas em uma grade matricial considerando um SRU? Justifique adequadamente. Se o dispositivo gráfico for vetorial (SRD com coordenadas contínuas), então sim. Caso o dispositivo gráfico seja matricial (SRD com coordenadas discretas), então não, pois a unidade mínima em uma matriz são suas entradas, e não pontos. Já para o SRU, podemos fazer referência a entradas em uma matriz se considerarmos um universo que pode ser descrito através de um sistema de coordenadas discretas, ou seja, entradas em uma matriz. Caso contrário, o correto é fazer referências a pontos no espaço. 13)Descreva as equações para a conversão de dados entre o SRU para o SRN (veja slides apresentados em sala de aula). ncx = (x - xmin) / (xmax- xmin) ncy = (y - ymin) / (ymax- ymin) Coordenadas cartesianas (x,y) num intervalo definido pelo usuário que definem uma área retangular no espaço bidimensional denominada janela de visualização. xmin, xmax, ymin, ymax = valores máximos e mínimos de x e y. 14)Descreva as equações para a conversão de dados entre o SRN para o SRD (veja slides apresentados em sala de aula). dcx = round(ncx * (ndh − 1)) dcy = round(ncy * (ndv − 1)) dcx = coordenadas do dispositivo em x dcy = coordenadas do dispositivo em y ncx = coordenadas normalizadas ndh = número de posições endereçáveis na horizontal ndv = número de posições endereçáveis na vertical round = arredondar valores das coordenadas do dispositivo 15)Considerando que estamos trabalhando no plano, no exercício 13, qual a implicação de trabalharmos com as dimensões de uma janela de visualização ao invés do tamanho definido para o mundo (universo)? Justifique! Quais as vantagens de pensarmos em termos de janelas? São utilizadas dimensões de uma janela de visualização ao invés do tamanho definido para o mundo, pois, geralmente, se deseja exibir apenas uma parte específica de dados do mundo e não ele todo. A vantagem é a possibilidade de escolher o quanto dos dados do mundo se deseja mostrar, ele todo ou apenas parte dele. 16)Ainda considerando o plano, no exercício 14, qual a implicação de trabalharmos com as dimensões de uma view-port ao invés do tamanho definido para a grade matricial que representa todo o dispositivo de saída? Justifique! Quais as vantagens de pensarmos em termos de view-ports ? As dimensões de uma view-port são utilizadas ao invés do tamanho que representa todo o dispositivo de saída, pois com ela é possível especificar em que local a imagem vai ser exibida na tela do dispositivo. A vantagem é a possibilidade de exibir dados na tela em diferentes tamanhos e lugares do dispositivo, o que resulta num maior espaço livre para exibir outros dados na tela. 17)Modifique as expressões apresentadas no exercício 14 para que uma view-port seja exibida em qualquer posição, respeitados os números máximos de entradas na vertical e na horizontal do dispositivo de saída. dcx = offsetX + round(ncx * (ndh − 1)), sendo que ndh vai ser a quantidade de entradas horizontais desse view-port dcy = offsetY + round(ncy * (ndv − 1)) , sendo que ndv vai ser a quantidade de entradas horizontais desse view-port 18) Quais as características desejáveis em um bom algoritmo para o conversão matricial de 1 segmentos de reta em Computação Gráfica? Em que domínio esse algoritmo é aplicado? Justifique! 1. Linearidade: os pixels traçados devem dar a aparência de que estão sobre uma reta. Isto é trivial no caso de segmentos paralelos aos eixos x ou y, ou com inclinação de 45 graus, mas não nos outros casos. 2. Precisão: os segmentos devem iniciar e terminar nos pontos especificados. Caso isso não ocorra, pequenos gaps podem surgir entre o final de um segmento e o in ́ıcio de outro. 3. Espessura (Densidade) uniforme: a densidade da linha é dada pelo número de pixels traçados dividido pelo comprimento da linha. Para manter a densidade constante, os pixels devem ser igualmente espaçados. A imagem do segmento não varia de intensidade ou espessura ao longo de sua extensão. 4. Intensidade independente da inclinação: para segmentos de diferentes inclinações 5. Continuidade: a imagem não apresenta interrupções indesejáveis. 6. Rapidez no Traçado dos segmentos. O problema da conversão matricial consiste essencialmente em ajustar uma curva, no caso, um segmento de reta, a qual é precisamente definida por coordenadas reais, a uma malha de coordenadas inteiras. Isto pode ser feito calculando as coordenadas reais, (xr, yr), do próximo ponto na linha, e escolhendo na malha os pixels cujas coordenadas (x, y) mais se aproximam das coordenadas reais, obtidos por arredondamento ou truncamento. 19)Discuta a abordagem do algoritmo de Bresenham (ou algoritmo do ponto médio), para traçado de linhas retas (conversão matricial). Dadas as coordenadas dos pontos inicial e final de um segmento de reta, implemente o algoritmo de Bresenham para traçado de linhas. 20)O algoritmo de Bresenham é capaz de traçar linhas verticais? (considere o algoritmo proposto no livro de A. Conci e E. Azevedo). Não, pois para isso o coeficiente angular seria infinito, o que não é tratado no algoritmo. 21)Em caso negativo no exercício anterior, que modificações você poderia incorporar no algoritmo para que este possa desenhar segmentos de retas na vertical? Pensei em tratar o y como x e o x como y, assim teríamos uma constante para os valores de x e uma variação para os valores de y, possibilitando um desenho horizontal. 22)Discuta o funcionamento do algoritmo de Bresenham analisando o valor da variável que armazena o erro. 23) 24)Descreva um pseudocódigo para o preenchimento de um polígono de forma arbitrária. Em geral, a decisão sobre quais pixels preencher é feita “varrendo-se” (scan) linhas sucessivas que interceptam a primitiva, e preenchendo, da esquerda para a direita, blocos de pixels adjacentes (spans) que estão dentro da primitiva que define o polígono. 25)Considere um sistema de coordenadas homogêneas no plano. As matrizes que definem as transformações lineares de escalonamento, translação e rotação possuem inversa? Em caso afirmativo, qual a condição necessária para a existência da matriz inversa? Todas as matrizes de transformação ( T, SeR) possuem inversas. Para descobrir se uma matriz possui uma matriz inversa ou não basta calcular o determinante dela: caso o determinante dê igual a zero, não existe matriz inversa para ela. 26)Supondo um sistema de coordenadas homogêneas e admitindo a existência das matrizesinversas para as operações de rotação, deslocamento e escalonamento, como são descritas essas matrizes? A inversa de T é obtida simplesmente negando-se dx , dy e dz. Para a matriz S, basta substituir sx, sy e sz por seus valores inversos. Para cada uma das matrizes de rotação R, basta negar o ângulo de rotaç̃ao. 27)A multiplicação das matrizes de rotação, translação e escalonamento é comutativa? Dê exemplos e justifique sua resposta. Rotação e escala são comutativas. Porém transação e escala não são, nem translação e rotação. 28)Considere o objeto definido pelos pontos p1=(3,3), p2=(6,3), p3=(6,6), p4=(4.5,8) e p5=(3,6). Aplique sobre ele uma operação de rotação de 70º (ou algum outro ângulo qualquer). Juntamente com a operação de rotação, verifique que uma outra operação aconteceu implicitamente sobre o pontos que definem o objeto. Que operação foi essa? Por que isso aconteceu? Como resolver esse problema? x’ = x cos(Θ) – y sen(Θ) sen(70o) = 0,94 y’ = y cos(Θ) + x sen(Θ) cos(70o) = 0,34 p1’ = (-1.8 ; 3,84) p2’ = (-0.78 ; 6.66) p3’ = (-3.6 ; 7.68) p4’ = (-5.99 ; 6.48) p5’ = (-4.62 ; 4.86) 29)A transformação de cisalhamento (shearing ou skew) no plano é uma operação que distorce o formato de um objeto. Neste tipo de operação, aplica-se um deslocamento aos valores das coordenadas do objeto proporcional ao valor das outras coordenadas de cada ponto transformado. Por exemplo, uma distorção na direção x, proporcional a coordenada y, pode ser obtida considerando a seguintes novas coordenadas: x' = x + S*y e y' = y. Note a presença da coordenada y na composição da coordenada x', onde S é um valor constante. Determine a transformação linear e a matriz correspondente para realizar essa transformação considerando o uso de coordenadas homogêneas. [ x' ] | 1 S 0 | | x | | y' | = | 0 1 0 | * | y | [ 1 ] | 0 0 1 | | 1 | 30)Por que é interessante pensarmos ou trabalharmos com transformações lineares em CG? Justifique sua resposta. Utilizando transformações lineares, é possível aplicar várias operações sobre pontos. Podemos trazer o conceito dos pontos da matemática para pixels dentro do contexto da computação gráfica. Pensando dessa maneira existem muitas transformações lineares que são comumentes utilizadas e úteis para a computação gráfica, alguns exemplos são: - Reflexão em torno do eixo x ou y. - Reflexão em torno de uma reta - Rotação em torno de um eixo ou origem - Cisalhamento na direção do eixo x ou y, entre outras. As aplicações de tais transformações dentro da computação gráfica são vastas, podemos por exemplo transformar uma fonte em itálico, espelhar uma imagem, rotacionar uma imagem, entre muitas outras. 31)Descreva o que se entende por look-up-table, colormap ou mapa de cores. Uma look-up-table é uma matriz que é aplicada num conjunto de valores para transformá-los. Essa matriz pode ser um conjunto de fórmulas ou um conjunto de números pré determinados (um look-up-table de cores). Ela pode ser usada, por exemplo, para tratamento de imagens. Um colormap, ou mapa de cores, é um vetor de cores utilizado para mapear dados de pixel para os valores de cores correspondentes. 32)Descreva como podemos separar a informação geométrica da informação de cor associadas a cada entrada de uma malha retangular que representa abstratamente um dispositivo gráfico de saída. Com a utilização das look-up-table ou com colomaps, podemos desassociar as informações geométricas (coordenadas, pontos e etc) com as informações associadas a cada entrada de uma malha retangular, pois utilizando a look-up-table pode-se associar um índice para uma determinada cor, assim as informações da cor associada a cada entrada pode ser acessada por meio do índice atribuído aquela cor. 33)Faça uma pesquisa na Web sobre “modo texto” e “modo gráfico”, estabelecendo e discutindo suas diferenças.
Compartilhar