computação gráfica ...denominada tecnologia raster. esses dispositivos possuem uma memória na...

18
Computação Gráfica Rasterização Rev3 www.portaleletronica.com.br Prof. Ricardo Tadeu Ferracioli 1 1. RASTERIZAÇÃO Rasterização é o processo de conversão da representação vetorial para a matricial. Ela permite realizar a conversão de um desenho tridimensional qualquer em uma representação inteira possível de ser armazenada na memória (de vídeo ou impressão) de um dispositivo raster. A Figura 1.1 ilustra a rasterização de uma reta. Grande parte dos dispositivos de entrada e saída, tal como filmadoras digitais, scanners, vídeos e impressoras, usam uma tecnologia matricial, também denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1: Conversão da representação de uma reta na forma vetorial para a matricial. Em B, é incluído um tratamento de anti-aliasing. Um vídeo raster é composto de uma memória (Figura 1.2) onde estão armazenadas as informações que descrevem a imagem. Essa memória de vídeo é uma área de armazenamento onde cada posição indica quando um determinado pixel na tela deve estar apagado ou aceso e em qual cor.

Upload: others

Post on 29-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

1

1. RASTERIZAÇÃO

Rasterização é o processo de conversão da representação vetorial para a

matricial. Ela permite realizar a conversão de um desenho tridimensional

qualquer em uma representação inteira possível de ser armazenada na

memória (de vídeo ou impressão) de um dispositivo raster. A Figura 1.1 ilustra

a rasterização de uma reta.

Grande parte dos dispositivos de entrada e saída, tal como filmadoras digitais,

scanners, vídeos e impressoras, usam uma tecnologia matricial, também

denominada tecnologia raster. Esses dispositivos possuem uma memória na

qual é composta a imagem a ser posteriormente exibida no dispositivo.

Figura 1.1: Conversão da representação de uma reta na forma vetorial para a

matricial. Em B, é incluído um tratamento de anti-aliasing.

Um vídeo raster é composto de uma memória (Figura 1.2) onde estão

armazenadas as informações que descrevem a imagem. Essa memória de

vídeo é uma área de armazenamento onde cada posição indica quando um

determinado pixel na tela deve estar apagado ou aceso e em qual cor.

Page 2: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

2

Figura 1.2: Descrição de imagens matriciais por conjunto de pixels.

A Figura 1.3 mostra um exemplo no qual a cor é especificada na memória de

vídeo na forma conhecida como tabela de cores. Um circuito de hardware

especial faz a leitura dessa memória e aciona a forma usada pelo hardware

para acender o pixel.

Figura 1.3: Memória de vídeo e uso de tabela (paleta) de cores.

Se o vídeo usar a tecnologia de tubo de raios catódicos (CRT), por exemplo, o

canhão de elétrons será sensibilizado de forma a compor na tela o mesmo

desenho composto na memória de vídeo (Figura 1.4).

Page 3: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

3

Figura 1.4: Tubo de Raio Catódico.

2. Rasterização de retas

Normalmente, gráficos são definidos através de primitivas geométricas como:

pontos, retas, círculos, textos etc. Pode parecer simples traçar uma reta no

vídeo mas, no entanto, esse tipo de rotina não é tão simples quanto parece. Ao

tentarmos desenhar uma reta no vídeo, devemos nos lembrar de que essa reta

não poderá ser desenhada da mesma forma que a desenhamos em uma folha

de papel, ou seja, nem sempre terá uma forma reta perfeita. Ela será

desenhada pelos pixels que puderem ser acessos no dispositivo de

visualização utilizado, através de uma aproximação a ser obtida com a

utilização do quadriculado formado pelos pixels (Figura 1.1).

Dependendo da inclinação traçada, podemos obter uma linha com uma

aparência serrilhada. Isso é denominado aliasing e é devido às quebras de

continuidade impostas pela malha de pontos. Essa quebra das linhas tende a

ser muito mais aparente à medida que os pontos apresentados na tela forem

de maior tamanho (dot pitch) ou que o dispositivo possuir menor resolução

(números possíveis de pixels nas duas direções). Esses serrilhados podem ser

melhorados através da aplicação de algoritmos de anti-serrilhamento

conhecidos como algoritmos de anti-aliasing.

Os algoritmos de anti-aliasing buscam tentar “enganar” o olho humano. Eles

geralmente conseguem isso fazendo as bordas de um desenho ficarem um

pouco “borradas”, ou melhor, menos nítidas. Geralmente usam uma cor

Page 4: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

4

intermediária entre a cor da linha e a cor do fundo, obtendo assim a suavização

do contraste entre as duas cores. Dessa maneira, tem-se uma linha que terá

uma aparência mais perfeita para uma pessoa que a observe a uma certa

distância. A Figura 1.1B ilustra essa técnica. Os esquemas representados em A

e B nesta figura, permitem uma comparação entre as duas linhas, uma sem e a

outra com o tratamento anti-aliasing.

Sendo a tela gráfica uma matriz de pontos, é impossível traçar uma linha direta

de um ponto a outro. Sendo assim, alguns pontos da tela deverão ser

selecionados para representar a reta que se deseja desenhar. Esta seleção é

feita pelos algoritmos de rasterização.

3. Algoritmo de reta –Digital Differential Analyser (DDA)

Linhas Retas:

• Do ponto de vista matemático, uma reta pode ser descrita como:

𝑦 = 𝑚𝑥 + 𝑛

• O parâmetro m é o coeficiente angular, relacionado ao ângulo que a reta

faz com o eixo x.

- Para m <=1, a reta faz um ângulo entre 0º e 45º com o eixo x.

- Para m > 1, a reta faz um ângulo entre 45º e 90º com o eixo x.

• O coeficiente linear b dá o valor no eixo y que é cruzado pela reta.

• Dados os pontos no plano P1 e P2, pode-se obter m e n, ou seja, a

equação da reta que passa pelos pontos.

𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1 𝑛 = 𝑦1 − 𝑚𝑥1

Page 5: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

5

Algoritmos para desenhar retas:

• A partir das equações apresentadas para a reta, pode-se definir

algoritmos para desenhar um segmento de reta a partir de dois pontos

dados.

• Algoritmo DDA (Digital Differential Analyser) – Baseia-se na aplicação

direta das fórmulas que descrevem uma reta no plano.

• Assim, para traçar uma reta que vai do ponto P1 ao P2, podemos pensar

no seguinte algoritmo:

1) Pinta-se o pixel do ponto P1, isto é, o pixel de coordenadas (x1 ,y1 ),

e atribuem-se às variáveis de trabalho (x,y) os valores de (x1 ,y1 ).

2) Dá-se o próximo passo: vai ao pixel seguinte (x,y), onde x < x+1 e y <

y+m e pinta-se esse novo pixel.

3) Repete o passo 2 até que o ponto P2 seja alcançado.

Algoritmo DDA (Digital Differential Analyser):

• O DDA é um típico algoritmo incremental. Algoritmos incrementais são

aqueles em que uma das variáveis é obtida apenas incrementando o

seu valor, por exemplo X = X + 1, e a outra é calculada por alguma regra

a partir da primeira.

• Definições para o algoritmo:

𝑚 =∆𝑦

∆𝑥=

𝑦2 − 𝑦1

𝑥2 − 𝑥1

𝑛 = 𝑦1 − 𝑚𝑥1

∆𝑦 = 𝑚∆𝑥, ∆𝑥 =∆𝑦

𝑚

Page 6: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

6

Exemplo 3.1:

Dado dois pontos da reta (2, 2) e (7, 6) desenhe os pixels (x, round(y)) em cada

interação.

Solução:

𝑦 = 𝑚𝑥 + 𝑛 ⇒ 𝑛 = 𝑦 − 𝑚𝑥

𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1=

6 − 2

7 − 2 ⇒ 𝑚 = 0,8

𝑛 = 𝑦 − 0,8𝑥 ⇒ 𝑛 = 𝑦1 − 0,8𝑥1 ⇒ 𝑛 = 2 − 0,8 . 2

𝑛 = 0,4

𝑦 = 𝑚𝑥 + 𝑛 ⇒ 𝒚 = 𝟎, 𝟖𝒙 + 𝟎, 𝟒

Page 7: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

7

Exemplo 3.2:

Usando o algoritmo DDA (Digital Differential Analyser), compute quais pixels

devem ser escolhidos para representar a reta de (6,9) a (11,12).

Solução:

𝑦 = 𝑚𝑥 + 𝑛 ⇒ 𝑛 = 𝑦 − 𝑚𝑥

𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1=

12 − 9

11 − 6 ⇒ 𝑚 = 0,6

Os Valores computados são:

x y Round (y)

6 9 9

7 9,6 10

8 10,2 10

9 10,8 11

10 11,4 11

11 12 12

Page 8: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

8

4. Algoritmo de Bresenham para Traçado de Linhas

• Mais eficiente que DDA

- Incremental e cálculo baseado em inteiros

• Em cada iteração determinamos se a reta (real) intersecciona o próximo

pixel acima (“above”) ou abaixo (“below”) da metade (“midpoint”) do valor de

y.

- se acima do midpoint então A: 𝒚𝒊+𝟏 = 𝒚𝟏 + 𝟏

- se abaixo do midpoint B: 𝒚𝒊+𝟏 = 𝒚𝟏

O algoritmo de Bresenham (também chamado de algoritmo do Ponto Médio)

baseia-se no argumento de que um segmento de reta, ao ser plotado, deve ser

contínuo, ou melhor, os pixels que compõem um segmento de reta devem ser

vizinhos.

O algoritmo de Bresenham para a rasterização ou linhas considera como dados

de entrada a localização de dois pixels (x1, y1) e (x2, y2) da reta a ser

rasterizada.

Para cada ponto a ser traçado, o algoritmo verifica sua distância entre a

posição do próximo pixel e a localização da reta no grid.

𝑦 = 𝑚𝑥 + 𝑛 ⇒ 𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1 ⇒ 𝑚 =

𝑑𝑦

𝑑𝑥

𝑦 =𝑑𝑦

𝑑𝑥𝑥 + 𝑛 (. 𝑑𝑥) ⇒ 𝑑𝑥. 𝑦 = 𝑑𝑦. 𝑥 + 𝑑𝑥. 𝑛

Page 9: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

9

𝐹(𝑥, 𝑦) = 𝑑𝑦. 𝑥 − 𝑑𝑥. 𝑦 + 𝑑𝑥. 𝑛 = 0

Sendo:

𝑎 = 𝑑𝑦 𝑏 = −𝑑𝑥 𝑐 = 𝑑𝑥. 𝑛

𝐹(𝑥, 𝑦) = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 = 0

Utiliza a forma implícita da equação de reta:

➢ 𝐹(𝑥, 𝑦) = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 = 0 ⇒ 𝑜𝑠 𝑝𝑜𝑛𝑡𝑜𝑠 (𝑥𝑖, 𝑦𝑖) 𝑒𝑠𝑡ã𝑜 𝑛𝑎 𝑟𝑒𝑡𝑎

➢ 𝐹(𝑥, 𝑦) = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 < 0 ⇒ 𝑜𝑠 𝑝𝑜𝑛𝑡𝑜𝑠 (𝑥𝑖 , 𝑦𝑖) 𝑒𝑠𝑡ã𝑜 𝑎𝑐𝑖𝑚𝑎 𝑑𝑎 𝑟𝑒𝑡𝑎

➢ 𝐹(𝑥, 𝑦) = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 > 0 ⇒ 𝑜𝑠 𝑝𝑜𝑛𝑡𝑜𝑠 (𝑥𝑖 , 𝑦𝑖) 𝑒𝑠𝑡ã𝑜 𝑎𝑏𝑎𝑖𝑥𝑜 𝑑𝑎 𝑟𝑒𝑡𝑎

A cada iteração, verifica se o “midpoint” está acima ou abaixo da reta.

Examina-se o valor de:

𝑑𝑖 = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 = 0 ⇒ (𝑥𝑖 + 1, 𝑦𝑖 +1

2)

𝑑𝑖 = 𝑎. (𝑥𝑖 + 1) + 𝑏. (𝑦𝑖 +1

2) + 𝑐 = 0

𝑑𝑖 é uma variável de decisão no passo i.

Procedimento para tomada de decisão:

1) No ponto inicial 𝒑 = 𝟎, a variável de decisão é calculada da seguinte

forma:

𝑑𝑖 = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 = 0 ⇒ (𝑥 + 1, 𝑦 +1

2)

𝑑𝑖+1 = 𝑎. (𝑥 + 1) + 𝑏. (𝑦 +1

2) + 𝑐 ⇒ 𝑑𝑖+1 = 𝑎𝑥 + 𝑎 + 𝑏𝑦 +

𝑏

2+ 𝑐

𝑑𝑖+1 = (𝒂𝒙 + 𝒃𝒚 + 𝒄) + 𝑎 +𝑏

2 ⇒ 𝑑𝑖+1 = 𝑑𝑖 + 𝑎 +

𝑏

2

Page 10: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

10

𝑑𝑖+1 = 0 + 𝑎 +𝑏

2 ⇒ 𝑑𝑖+1 = 𝑎 +

𝑏

2

Uma parte fracionária é introduzida (b/2), mas como interessa-se somente o

sinal de d, pode-se multiplicar a expressão por 2:

𝑑𝑖+1 = 𝑎 +𝑏

2 (𝑥2) ⇒ 𝑑𝑖+1 = 2𝑎 + 𝑏

Sabendo que:

𝑎 = 𝑑𝑦

𝑏 = −𝑑𝑥

Temos:

𝒅𝒊+𝟏 = 𝟐𝒅𝒚 − 𝒅𝒙

2) Se 𝒅𝒊 > 𝟎 então escolhe-se o pixel A e novo “midpoint” deverá ser checado:

𝑑𝑖 = 𝑎. 𝑥 + 𝑏𝑦 + 𝑐 > 0 ⇒ (𝑥 + 1, 𝑦 + 1)

𝑑𝑖+1 = 𝑎. (𝑥 + 1) + 𝑏. (𝑦 + 1) + 𝑐 ⇒ 𝑑𝑖+1 = 𝑎𝑥 + 𝑎 + 𝑏𝑦 + 𝑏 + 𝑐

𝑑𝑖+1 = (𝒂𝒙 + 𝒃𝒚 + 𝒄) + 𝑎 + 𝑏 ⇒ 𝑑𝑖+1 = 𝑑𝑖 + 𝑎 + 𝑏

Page 11: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

11

Sabendo que:

𝑎 = 𝑑𝑦

𝑏 = −𝑑𝑥

Temos:

𝑑𝑖+1 = 𝑑𝑖 + 𝑑𝑦 − 𝑑𝑥 (𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎 𝑝𝑜𝑟 2 𝑎𝑝𝑒𝑛𝑎𝑠 𝑑𝑦 𝑒 𝑑𝑥)

𝒅𝒊+𝟏 = 𝒅𝒊 + 𝟐𝒅𝒚 − 𝟐𝒅𝒙

3) Se 𝒅𝒊 < 𝟎 então escolhe-se o pixel Be o novo “midpoint” é:

𝑑𝑖 = 𝑎. 𝑥 + 𝑏. 𝑦 + 𝑐 < 0 ⇒ (𝑥 + 1, 𝑦)

𝑑𝑖+1 = 𝑎. (𝑥 + 1) + 𝑏. (𝑦) + 𝑐 ⇒ 𝑑𝑖+1 = 𝑎𝑥 + 𝑎 + 𝑏𝑦 + 𝑐

𝑑𝑖+1 = (𝒂𝒙 + 𝒃𝒚 + 𝒄) + 𝑎 ⇒ 𝑑𝑖+1 = 𝑑𝑖 + 𝑎

Sabendo que:

𝑎 = 𝑑𝑦

Temos:

𝑑𝑖+1 = 𝑑𝑖 + 𝑑𝑦 (𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎 𝑝𝑜𝑟 2 𝑎𝑝𝑒𝑛𝑎𝑠 𝑑𝑦)

𝒅𝒊+𝟏 = 𝒅𝒊 + 𝟐𝒅𝒚

Page 12: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

12

OU SEJA,

Cálculo da variável de decisão:

• Início: substituindo os valores de a e b obtemos:

𝑑𝑖+1 = 2𝑎 + 𝑏 = 2𝑑𝑦 − 𝑑𝑥

• Para 𝑑𝑖 > 0:

Multiplicando por 2 e substituindo a e b:

𝑑𝑖+1 = 𝑑𝑖 + 2(𝑎 + 𝑏) = 𝑑𝑖 + 2(𝑑𝑦 − 𝑑𝑥)

se acima do midpoint então A: 𝒚𝒊+𝟏 = 𝒚𝟏 + 𝟏

• Para 𝑑𝑖 < 0:

Multiplicando por 2 e substituindo a:

𝑑𝑖+1 = 𝑑𝑖 + 2𝑎 = 𝑑𝑖 + 2𝑑𝑦

se abaixo do midpoint B: 𝒚𝒊+𝟏 = 𝒚𝟏

Exemplo 4.1:

Traçar a reta passando por: P1(2,2) e P2(7,6)

Solução:

Encontrar a equação da reta

Page 13: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

13

𝑦 = 𝑚𝑥 − 𝑛

𝑦 = 𝑚𝑥 + 𝑛 ⇒ 𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1 ⇒ 𝑚 =

6 − 2

7 − 2 ⇒ 𝑚 = 0,8

𝑛 = 𝑦 − 𝑚𝑥 ⇒ 𝑛 = 𝑦 − 0,8𝑥 ⇒ 𝑛 = 𝑦1 − 0,8𝑥1 ⇒ 𝑛 = 2 − 0,8.2

𝑛 = 0,4

𝑬𝒒𝒖𝒂çã𝒐 𝒅𝒂 𝒓𝒆𝒕𝒂: 𝒚 = 𝟎, 𝟖𝒙 + 𝟎, 𝟒

Page 14: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

14

x y d

2

2

3

Ponto inicial, 𝑑1 = 0

𝑑1 = 2𝑑𝑦 − 𝑑𝑥

𝑑𝑥 = 7 − 2 ⇒ 𝑑𝑥 = 5

𝑑𝑦 = 6 − 2 ⇒ 𝑑𝑦 = 4

𝑑1 = 2.4 − 5 ⇒ 𝒅𝟏 = 𝟑

3

3

1

𝑑1 > 0

𝑦2 = 𝑦1 + 1 ⇒ 𝑦2 = 2 + 1 ⇒ 𝑦2 = 3

𝑑2 = 𝑑1 + 2(𝑑𝑦 − 𝑑𝑥) ⇒ 𝑑2 = 3 + 2(4 − 5) ⇒ 𝒅𝟐 = 𝟏

4

4

-1

𝑑2 > 0

𝑦3 = 𝑦2 + 1 ⇒ 𝑦3 = 3 + 1 ⇒ 𝑦3 = 4

𝑑3 = 𝑑2 + 2(𝑑𝑦 − 𝑑𝑥) ⇒ 𝑑3 = 1 + 2(4 − 5) ⇒ 𝒅𝟑 = −𝟏

5

4

7

𝑑3 < 0

𝑦4 = 𝑦3

𝑑4 = 𝑑3 + 2𝑑𝑦 ⇒ 𝑑4 = −1 + 2.4 ⇒ 𝒅𝟒 = 𝟕

6

5

5

𝑑4 > 0

𝑦5 = 𝑦4 + 1 ⇒ 𝑦5 = 4 + 1 ⇒ 𝑦5 = 5

𝑑5 = 𝑑4 + 2(𝑑𝑦 − 𝑑𝑥) ⇒ 𝑑5 = 7 + 2(4 − 5) ⇒ 𝒅𝟓 = 𝟓

7

6

3

𝑑5 > 0

𝑦6 = 𝑦5 + 1 ⇒ 𝑦6 = 5 + 1 ⇒ 𝑦6 = 6

𝑑6 = 𝑑5 + 2(𝑑𝑦 − 𝑑𝑥) ⇒ 𝑑6 = 5 + 2(4 − 5) ⇒ 𝒅𝟔 = 𝟑

Page 15: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

15

Page 16: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

16

5. Algoritmo de Círculo – Midpoint

Círculo com raio r é centro (𝑥𝑐, 𝑦𝑐) é definido parametricamente como:

𝑥 = 𝑥𝑐 + 𝑟. 𝑐𝑜𝑠𝜃

𝑦 = 𝑦𝑐 + 𝑟. 𝑠𝑒𝑛𝜃

Variando de 𝜃 até 2𝜋 plotando-se as coordenadas:

–Dificuldade para efetivamente controlar a dimensão do passo, para eliminar os

espaços entre os pixels

CIRCUNFERÊNCIAS

Para desenhar ¼ de circunferência poderíamos variar x de 0 a R, em

incrementos de uma unidade, calculando +y a cada passo através da equação

explicita da circunferência dada por:

𝑦 = 𝑓(𝑥): 𝑦 = ±√𝑅2 − 𝑥2

Page 17: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

17

d < 0, escolhe pixel A d > 0, escolhe pixel B

𝑑𝑖+1 = 𝑑𝑖 + 2𝑥𝑖 + 3 𝑑𝑖+1 = 𝑑𝑖 + 2𝑥𝑖 − 2𝑦𝑖 + 5

Manter 𝑦𝑖+1 = 𝑟 𝑦𝑖+1 = 𝑟 − 1

EXEMPLO:

A seguir é apresentada uma simulação da execução desse algoritmo para um

círculo de raio 10 pixels, com centro em (0,0).

x y d

0 10 -9 𝑑0 = 1 − 𝑟 ⇒ 𝑑0 = 1 − 10 ⇒ 𝑑0 = −9

1

10

-6

Para 𝑑0 < 0:

• Temos 𝑦0+1 = 𝑟 ⇒ 𝑦1 = 10

• Temos 𝑑1 = 𝑑0 + 2𝑥1 + 3

𝑑1 = 𝑑0 + 2𝑥0 + 3 ⇒ 𝑑1 = −9 + 2.0 + 3 ⇒ 𝑑1 = −6

2

10

-1

Para 𝑑1 < 0:

• Temos 𝑦2 = 𝑟 ⇒ 𝑦2 = 10

• Temos 𝑑2 = 𝑑1 + 2𝑥1 + 3

𝑑2 = −6 + 2.1 + 3 ⇒ 𝑑2 = −1

Para 𝑑2 < 0:

• Temos 𝑦3 = 𝑟 ⇒ 𝑦3 = 10

Page 18: Computação Gráfica ...denominada tecnologia raster. Esses dispositivos possuem uma memória na qual é composta a imagem a ser posteriormente exibida no dispositivo. Figura 1.1:

Computação Gráfica

Rasterização – Rev3

www.portaleletronica.com.br

Prof. Ricardo Tadeu Ferracioli

18

3 10 6 • Temos 𝑑3 = 𝑑2 + 2𝑥2 + 3

𝑑3 = −1 + 2.2 + 3 ⇒ 𝑑3 = 6

4

9

-3

Para 𝑑3 > 0:

• Temos 𝑦𝑖+1 = 𝑟 − 1 ⇒ 𝑦4 = 10 − 1 ⇒ 𝑦4 = 9

• Temos 𝑑4 = 𝑑3 + 2𝑥3 − 2𝑦3 + 5

𝑑4 = 6 + 2.3 − 2.10 + 5 ⇒ 𝑑4 = −3

5

9

8

Para 𝑑4 < 0:

• Temos 𝑦5 = 𝑟 ⇒ 𝑦5 = 9

• Temos 𝑑5 = 𝑑4 + 2𝑥4 + 3

𝑑5 = −3 + 2.4 + 3 ⇒ 𝑑5 = 8

6

8

5

Para 𝑑5 > 0:

• Temos 𝑦𝑖+1 = 𝑟 − 1 ⇒ 𝑦6 = 9 − 1 ⇒ 𝑦6 = 8

• Temos 𝑑6 = 𝑑5 + 2𝑥4 − 2𝑦4 + 5

𝑑6 = 8 + 2.5 − 2.9 + 5 ⇒ 𝑑6 = 5

7

7

6

Para 𝑑6 > 0:

• Temos 𝑦𝑖+1 = 𝑟 − 1 ⇒ 𝑦7 = 8 − 1 ⇒ 𝑦7 = 7

• Temos 𝑑7 = 𝑑6 + 2𝑥6 − 2𝑦6 + 5

𝑑7 = 5 + 2.6 − 2.8 + 5 ⇒ 𝑑7 = 6