primitivas graficas ( universidad nacional de moquegua )

Upload: -

Post on 06-Jul-2015

216 views

Category:

Documents


0 download

DESCRIPTION

( Universidad Nacional de Moquegua )

TRANSCRIPT

Primitivas GrficasMSc. Edgar Taya Acosta Asignatura: Realidad Virtual Universidad Nacional de Moquegua

Introduccin Definiciones previas:Conversin al raster: operacin que consiste en aproximar elementos geomtricos contnuos mediante un conjunto de puntos discretos (pixeles). Pixel: rea rectangular de la pantalla del computador que tiene asociada una posicin en memoria.

Ejemplo: conversin de puntos Conversin al raster de un punto definido mediante una coordenada, almacenando el color con el que se desea visualizar este punto. Un algoritmo sencillo de conversin de puntos al raster:Sea (x,y) un punto de coordenadas reales (x,y) = (round (x), round (y))x donde (x.y) ser la posicin correspondiente en el raster. x round () es la funcin que redondea el valor real que toma como parmetro.

Conversin de rectas Descripcin del Problema: Consiste en calcular las coordenadas de los pixeles que representan una recta infinitamente delgada colocada sobre la malla de un raster 2D.

Hay que tener en cuenta: Las rectas son contnuas, Las rectas tienen brillo constante independientemente de su orientacin y longitud. Las rectas han de ser dibujadas tan rpido como sea posible, Las rectas tienen atributos:Patrn de lnea. Anchura de lnea.

Algoritmo de fuerza bruta Es la estrategia ms simple para convertir rectas al raster utilizando su ecuacin:y=mx + b, donde m= y/ x

El algoritmo de conversin de una recta de extremos (x1,y1) quedara como sigue:Para x desde x1 hasta x2 (incrementos/decrementos unitarios)x y=mx+b x dibujar_pixel (x, round(y))

finPara

Algoritmo de Fuerza Bruta (continuacin) Restriccin: La restriccin que ha de cumplir el algoritmo es que m se encuentre entre -1 y 1. Soluciones a la Restriccin:Intercambiar la coordenada x por la y en los extremos de la recta, convertir al raster y despus, antes de visualizar, volver a intercambiar las coordenadas. Calcular la x en funcin de incrementos unitarios de y.

Desventajas: El algoritmo es ineficiente, ya que en cada iteracin requiere:Una multiplicacin en coma flotante. Una invocacin a la funcin round().

Algoritmo DDA (Analizador Digital Diferencial) Algoritmo iterativo. Teniendo en cuenta que, y que en las sucesivas iteraciones se toma x=1, se tiene, Elimina el producto en coma flotante. Pero trabaja en aritmtica flotante. El algoritmo de conversin de una recta de extremos (x1,y1) y (x2,y2) quedara como sigue:y =y1 Para x desde x1 hasta x2 (incrementos/decrementos unitarios)x y=y+m x dibujar_pixel(x, round(y))

yi+1=m xi+1 + b = m (xi + x) + b = yi + m x yi+1 = y i +m

finPara

La misma restriccin que en el algoritmo de la fuerza bruta. Desventaja : invocacin de la funcin round()

Algoritmo DDA Simtrico El incremento es en una de las dos coordenadas x y. De la ecuacin de la recta y=mx+b se obtiene que un incremento y = m x en y. La coordenada que se incrementa depende de m=y2y1/x2-x1. Si -1 0 el punto (x,y) est debajo de la recta.

El punto medio M entre los puntos ESTE (xk+1, yk) y NORESTE (xk+1, yk+1) tiene coordenadas M = (xk+1, yk+1/2) Para saber cual de los pixeles, ESTE NORESTE, est ms cerca de la recta se estudia si el punto medio M se encuentra encima debajo de la recta. Ello se realiza estudiando el signo de la variable de decisin d=F(M)=F(xk+1, yk+1/2).x Si d>0 (M debajo de la recta) tomar pixel NE (xk+1, yk+1) x Si d