Buscar

MÓDULO 2 - MAPEAMENTO WINDOW-TO-VIEWPORT

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Primitivas Gráficas em 2D
Como dito no módulo anterior, primitivas gráficas são ambos elementos básicos de gráficos/desenhos, a partir dos quais são construídos outros objetos, mais complexos, e também os comandos e funções que manipulam e alteram os elementos gráficos de uma imagem.
No que diz respeito à primeira definição, a modelagem de objetos por meio de primitivas dá-se por instanciação: uma linha é uma seqüência de pontos, uma polilinha é uma seqüência de linhas, etc. ... Já uma circunferência PODE ser vista como uma polilinha fechada, onde o número de linhas define a qualidade da curva e assim por diante. (figura 1).
Atributo da primitiva gráfica PONTO
Em CG o PONTO matemático, sem dimensão, transforma-se no PIXEL, a menor unidade gráfica manipulável (PIXEL: de PIcture ELement).
Ao contrário do PONTO, o PIXEL tem forma, dimensão, mas estes atributos não são, em geral, manipuláveis diretamente através de funções e dependem do hardware.
Por outro lado, em CG, tanto o PONTO quanto o PIXEL são objetos de um desenho que se inscreve em um espaço bidimensional. No caso do ponto matemático tal espaço pertence ao R2. Já o pixel é um elemento de uma matriz de tamanho W x H (Width-largura e Height-altura, em pixels, da matriz do dispositivo gráfico de saída), cujas coordenadas pertencem ao N2. (R é o conjunto dos números reais e N é o conjunto dos naturais).
Assim, podemos atribuir ao pixel apenas duas propriedades fundamentais: COR e POSIÇÃO.
Como as coordenadas do PONTO, que formam um VETOR com valores no espaço real, e as coordenadas do PIXEL são elementos de uma MATRIZ, possuindo coordenadas inteiras e positivas, devemos converter os valores adequadamente.
Esse cálculo é denominado de MAPEAMENTO WINDOW-TO-VIEWPORT. Podemos chamá-lo de RASTERIZAÇÃO do ponto, já que o termo rasterização (rastering) é o processo de converter vetores para pixels em dispositivos raster. (lembre que as coordenadas de um ponto é uma grandeza vetorial).
O MAPEAMENTO WINDOW-TO-VIEWPORT
Sejam XR e YR as coordenadas (reais) de um ponto pertencente ao R2 e XP e YP (o P refere-se a Pixel) as coordenadas do pixel correspondente (inteiros positivos) na matriz gráfica (tela ou canvas).
As coordenadas reais (XR, YR) são, muitas vezes, referidas como COORDENADAS DO UNIVERSO (ou do MUNDO) e estão descritas em um SISTEMA DE REFERÊNCIA DO UNIVERSO (SRU), ou sistema de referências do mundo. São, em última análise, as coordenadas que usamos normalmente na modelagem de objetos matemáticos.
Por outro lado, as coordenadas inteiras (XP, YP) são descritas no SISTEMA DE REFERÊNCIA DO DISPOSITIVO gráfico de saída (SRD). Quando elas representam diretamente os valores das LINHAS e COLUNAS no dispositivo gráfico, portanto valores inteiros que correspondem aos índices dos elementos da matriz de pixel, serão referidas como coordenadas do dispositivo. Caso essas coordenadas expressem os VALORES REAIS de seus respectivos pontos no SRU, serão referidas como COORDENADAS LÓGICAS.
Uma vez que o espaço disponível para desenho no dispositivo gráfico de saída é limitado pela matriz de pixels, devemos especificar os valores mínimos e máximos de uma JANELA DE VISUALIZAÇÃO (viewport) na qual visualizaremos o nosso modelo matemático (desenho, função, etc...)
Portanto, a viewport corresponde a uma área no interior da matriz de pixels do dispositivo de saída gráfica. Ela pode corresponder a toda a matriz, como podem haver várias viewports no dispositivo, sobrepostas ou não...
Já o plano cartesiano onde localizamos as coordenadas reais (XR, YR) é infinito. Para representarmos qualquer modelo matemático deste espaço no interior da viewport, devemos definir um DOMÍNIO que contém os objetos a serem representados. Esse domínio será chamado de WINDOW por falta de um nome melhor. A window tem o mesmo papel de uma janela no sentido comum, através da qual vemos uma cena que queremos representar. Cada elemento primitivo descrito no interior da window será, então, MAPEADO na viewport.
Frequentemente os objetos geométricos são descritos (modelados) em um sistema próprio, denominado SISTEMA DE REFERENCIA DO OBJETO (SRO). Veja o esquema de mapeamento mostrado na figura 2.
O mapeamento window-to-viewport ocorre diretamente entre os SRU e o SRD, mas podemos usar as coordenadas lógicas como coordenadas intermediárias no mapeamento.
Outro sistema de referência utilizado na modelagem de objetos é o SISTEMA DE REFERÊNCIA NORMALIZADO (SRN). O SRN nada mais é do que o SRO limitado no intervalo [0, 1] ou [-1, 1] em cada uma de suas coordenadas.
Sejam, portanto, XRMIN e XRMAX os valores mínimos e máximos horizontais da janela no espaço cartesiano (window) e XPMIN e XPMAX os valores correspondentes em pixel (viewport). YRMIN, YRMAX, YPMIN e YPMAX serão os valores limites na vertical (c.f. figura 3). A transformação (XR,YR) ßà (YP,YP) é obtida por meio de um simples cálculo de PROPORCIONALIDADE (regra de três simples!). Para a coordenada horizontal (coordenada x) a transformação é:
Resolvendo XR em função de XP e XP em função de XR obtemos as relações:
onde SX é o fator de escala na dimensão horizontal
Expressões análogas são obtidas da mesma forma para a transformação da coordenada vertical (y)
Ao implementarmos essas expressões em alguma linguagem de programação devemos observar os tipos primitivos das variáveis (XR , YR) e (XP, YP). As primeira são de tipo real, ponto flutuante, e as outras são de tipo inteiro, o que implica em converter adequadamente os tipos.
EXERCÍCIOS RESOLVIDOS
R1. Seguindo o raciocínio desenvolvido nos últimos parágrafos do texto acima, obtenha as relações de YP em função de YR e de YR em função de YP. Considere que os limites da window e da viewport na vertical são, respectivamente (YRMIN, YRMAX) e (YPMIN, YPMAX).
RESP.: 	
e
onde
é o fator de escala na direção vertical.
Construiremos a relação de proporcionalidade para as coordenadas verticais da window e viewport acompanhando a figura 3. Observe que, como a origem das coordenadas da viewport encontra-se no canto superior esquerdo, o valores máximos e mínimos da window e viewport para a coordenada vertical são trocados, com o mínimo da window correspondendo ao máximo da viewport e vice-versa, diferentemente da coordenada horizontal, onde isso não ocorre. Assim, aplicando uma regra de três simples obtemos:
Como no exemplo desenvolvido no texto, definimos um fator de escala como
Donde, resolvendo YP em função de YR obtemos:
É resolvendo YR em função de YP, obtemos
R2. Considere o ponto P, pertencente ao SRU, cujas coordenadas (XR,YR) são P = (-1.45, 0.32). Sabendo que as coordenadas que definem a window são XRMIN = YRMIN = -2.0 e XRMAX = YRMAX = +2.0, qual o valor correspondente das coordenadas (XP,YP) do pixel em uma viewport de coordenadas XPMIN = YPMIN = 0, XPMAX = 1023 e YPMAX = 767 ?
 
RESP.: XP = 141; YP = 322
Para calcular as coordenadas do pixel no SRD substituímos os valores fornecidos no enunciado nas relações:
onde os fatores de escala são dados por:
Então:
Logo:
Como XP e YP são os valores inteiros (coluna e linha no SRD, respectivamente), devem ser convenientemente arredondados. Assim: XP = 141; YP = 322.
ATENÇÃO: Para que se entenda o mapeamento window-to-viewport perfeitamente, o resultado acima significa que, uma vez definidas a window e a viewport, o ponto (-1.45, 0.32) no SRU corresponderá ao pixel ( 141, 322) no SRD.

Outros materiais