21.03.2015 Views

Computação Gráfica 2D

Computação Gráfica 2D

Computação Gráfica 2D

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Representação analítica:<br />

1. Paramétrica: cada coordenada de um ponto é representado como uma função de um único<br />

parâmetro.<br />

2. Não Paramétrica<br />

a. Explícita y = mx + b<br />

para cada x, obtém-se apenas 1 valor de y. Ex: retas, senoides, etc.<br />

b. Implícita x 2 + y 2 = r 2<br />

para cada x, obtém-se 2 valores para y. Pode ser usado para representar círculos.<br />

Linha<br />

• Usos<br />

• Geralmente disponibilizado em APIs (Java, OpenGL, Directx, etc)<br />

• Representação paramétrica ou por função<br />

Representação por função Explícita<br />

y = mx + b<br />

m = inclinação da reta<br />

b = interseção com o eixo y.<br />

∆y<br />

m = =<br />

Λx<br />

y<br />

x<br />

b = y 1<br />

− mx 1<br />

∆ y = mΛx,<br />

2<br />

2<br />

− y1<br />

− x<br />

1<br />

Λy<br />

Λx<br />

=<br />

m<br />

(x 1 ,y 1)<br />

(x 2 ,y 2)<br />

Algoritmo DDA (Digital Differiential Analyser)<br />

y<br />

x<br />

1<br />

= yk<br />

+ m,<br />

0 < < 1<br />

1<br />

1<br />

= xk<br />

+ , > 1<br />

m<br />

k +<br />

m<br />

k +<br />

m<br />

Algoritmo DDA<br />

dx = x2 - x1<br />

dy = y2 - y1<br />

if (|dx| > |dy|)<br />

steps = |dx|<br />

else<br />

steps = |dy|<br />

incx = dx/steps<br />

incy = dy/steps<br />

pixel(x1, y1)<br />

for(k=0; k< steps; k++)<br />

{<br />

x += incx;<br />

y += incy<br />

pixel(x, y)<br />

}<br />

10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!