Вы находитесь на странице: 1из 25

Computacin grfica: conceptos fundamentales

Contenido

Display devices (Pantallas) Arquitectura de los sistemas raster-scan Cmo dibu ar en el !frame buffer"#

$%nea C%rculo

Display devices (pantallas)

&ubo de rayos catdicos (C'&)

(atri) de pi*eles +a) de electrones produce estimulacin de fsforo (pi*el) Alta resolucin, colores bien representados &asa de refresco: n-mero de veces que se dibu a en la pantalla por segundo.

/ntre 01 y 211 veces por segundo (enos que 01 produce parpadeo

Display devices (pantallas)

&ubo de rayos catdicos (C'&): s3ado4 mas5

&res !p3osp3or color dots" en cada pi*el: 6no emite lu) ro a, otro verde y el -ltimo a)ul &iene tres !guns" una para cada !color dot" $a lu) emitida por los tres fsforos genera un peque7o !spot" de color en cada pi*el (nuestro o o me)cla la lu) emitida) Configuraciones posibles de los fsforos: triangular o en l%nea

Display devices (pantallas)

Pantalla de Cristal l%quido ($CD):

Dibu o producido pasando lu) polari)ada a trav8s de un cristal l%quido que puede ser alineado para ya sea de ar pasar lu) o bloquear su paso.

Passive matri* $CD (ms antiguas) Active matri* $CD: se usan transistores para controlar el voltage de cada pi*el

Display devices (pantallas)

Pantalla de cristal l%quido ($CD):

(atri) de celdas accesibles (pi*eles) Celdas contienen mol8culas de cristal l%quido que se alinean con la carga 9o tiene parpadeo: la imagen debe ser actuali)ada solo si cambia (mayor persistencia). &asa de refresco: 01+), 2:1+) o :;1+) ... (s livianas que las C'& (enos consumo de energ%a que las C'& (irar:
3ttp:<<en.4i5ipedia.org<4i5i<$iquid=crystal=display
3ttp:<<444.toprevie4s3op.com<lcd=refres3=rates=e*plained=:;13)=vs=2:13)=vs=013)

Arquitectura de los sistemas raster-scan

>rame buffer: area de memoria usada para almacenar el dibu o

Posiciones en el frame buffer y las correspondientes posiciones de la pantalla se referencian en coordenadas cartesianas

?ideo Controller

accesa el frame buffer para resfrescar la pantalla obtiene los valores de los pi*eles de reas de memoria diferentes durante el ciclo de refresco contiene la !loo5 up table" que define la tabla de colores a usar

Arquitectura de los sistemas raster-scan

Colores '@A (red, green, blue) Como especificar un color#

/squema directo: Almacenar cdigos de color directamente en el frame buffer / emplo: frame buffer de B !bit planes" CD E colores (el bit de la i)quierda corresponde al ro o, el del medio al verde, y el bit derec3o al a)ul)

Arquitectura de los sistemas raster-scan

/squema directo:

Cmo agregar ms colores: agregar ms !bit planes" ?enta as: simple Desventa as: requerimiento de memoria alto

/ emplo: 0-bit planes F cuntos colores# Cunta


memoria se necesita para el frame-buffer con resolucin de 21:;*21:;# Con :;-bit pi*el y la misma resolucin#

Arquitectura de los sistemas raster-scan

/squema indirecto: Almacenar el color a usar en una tabla separada (loo5 up table) y usar el n-mero almacenado en el frame buffer como %ndice a la tabla

Arquitectura de los sistemas raster-scan

/squema indirecto: /n la figura

Cada pi*el puede tene run valor entre 1-:GG Cada posicin de la tabla tiene :; bits para especificar unl color: / el %ndice 2H0 almacena el color 1*E:2 Provee fle*ibilidad para cambiar el color usado para un mismo %ndice, o cambiar la tabla completa Cunta memoria usamos frame-buffer I table#

Arquitectura de los sistemas raster-scan

/squema indirecto:

6so de dos tablas de colores

>alse color

&rue color

Arquitectura de los sistemas raster-scan

Display processor (grap3ic processor, display co-processor)


- $iberar a la CP6 de las operaciones grficas
a. trasformar el dibu o en con unto de pi*eles y almacenarlos en el frame buffer (scan-conversion, rasteri)acin) I / : convertir una l%nea en en con unto de puntos discretos b. generar estilos de l%nea, reas rellenas, aplicar transformaciones a los ob etos c. obtener informacin de los dispositivos de entrada. / : mouse

Cmo dibujar en el frame buffer? Una lnea


Arreglo :D de pi*eles Asignacin individual de intensidad<color para cada pi*el Pi*eles centrados en coordenadas enteras setPixel(x, y)
(anc3o-2,alto-2)

* f, y f

* i, y i

(1,1)

Cmo dibujar en el frame buffer? Una lnea

Dados los puntos e*tremos de una l%nea x i , y i y x f , y f identificar las posiciones a dibu ar Ju8 requisitos se desea cumplir#

(irar:

3ttp:<<444.netgrap3ics.s5<

Cmo dibujar en el frame buffer? Una lnea

Algoritmo ingenuo:

y C f(*) C m*Ib para cada * en K*i, *fL, setPixel(x, round(y(x)))

Cmo dibujar una lnea?

Algoritmo DDA (digital differential anali)er):

Para cualquier intervalo en x manera similar x = y / m

y = m x y, de

Mupongamos que: 1 NC m NC 2, x = 1,

y k 1= y k m

Algoritmo incremental:

* C *i y C yi setPi*el(*, round(y)) O3ile * N *f


m m 2 2

*C*I2 yCyIm setPi*el(*, round(y))

Ju8 problemas puede tener#

Propuesto: completarlo

Cmo dibujar una lnea?

Algoritmo de Aresen3am

6sa solo operatoria incremental entera Calcula un valor de decisin entero para elegir qu8 pi*el usar

y5I2

d: d2

y5 *5 *5I2

Cmo dibujar en el frame buffer?

Algoritmo de Aresen3am (1 N m N 2)

y =m x k 1 b
d lower = y y k = m x k 1b y k d upper = y k 1 y = y k 1 m x k 1 b d lower d upper = 2m x k 1 2y k 2b 1

Dado que m C y < x


pk =x d lower d upper =2 y x k 2 x y k c

En el paso k+1 Restando

pk 1=2 y x k 12 x y k 1 c

pk 1 pk =2 y x k 1 x k 2 x y k 1 y k

Cmo dibujar una lnea?

Algoritmo de Aresen3am (PmP N 2)

y =m x k 1 b
d lower = y y k = m x k 1b y k d upper = y k 1 y = y k 1 m x k 1 b d lower d upper = 2m x k 1 b 2y k 2b 1

Dado que m C y < x = (yf yi!/(xf xi!


pk =x d lower d upper =2 y x k 2 x y k c

En el paso k+1
pk 1=2 y x k 12 x y k 1 c

Restando

pk 1 pk =2 y x k 1 x k 2 x y k 1 y k

Cmo dibujar una lnea?

Algoritmo de Aresen3am (m N 2)
pk 1= pk 2 y x k 1 x k 2 x y k 1 y k

Pero dado que

x k 1 x k = 1

pk 1= pk 2 y 2 x y k 1 y k

" dependiendo del si#no de $alor inicial de


p0 =2 y x

pk ,

y k 1 y k es 0 o 1

Cmo dibujar una lnea?


'ecordar que si p N 1 CD solo se incremente * Mi p DC1 se incrementa * e y

lineAresen3am(*1, y1, *f, yf)


setPi*el(*1, y1) p :C :y - * * :C *1Q y :C y1 43ile * N *f if pN1 p :C p I :y else y :C yI2 p :C p I :y - :* * :C *I2 setPi*el(*, y)

Propuesto: e*tenderlo a los otros casos.

Cmo dibujar un crculo?

Por qu8 no usar la conocida frmula:


( x xc ) 2 + ( y yc ) 2 = r 2 y = y c r 2 ( xc x ) 2

6sa operaciones !pesadas" /l espacio entre pi*eles dibu ados no uniforme

Cmo dibujar un crculo?

6sando un espaciado angular, un c%rculo puede ser dibu ado con puntos equidistantes
x = xc + r cos y = yc + r sen

Mimetr%a en el clculo del c%rculo: se calcula una posicin en un


octante y se obtiene los siete puntos restantes

Cmo dibujar un crculo?

(idPoint Circle algorit3m

Propuesto: mirar la implementacin

Вам также может понравиться