Algoritmos basicos de dibujo en 2 d

Post on 24-Jun-2015

8.543 views 0 download

Transcript of Algoritmos basicos de dibujo en 2 d

JUAN CARLOS PACHON RODRIGUEZ

YENNIFER CARDENAS REYES

ALGORITMOS BÁSICOS DE DIBUJO

EN 2 DIMENSIONES

Que es un algoritmo

Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.

Una secuencia de pasos que conducen a la realización de una tarea.

Que es un algoritmo básico

Son algoritmos que ayudan a crear graficas primitivas comolíneas, circunferencias y arcos.

Que es un dibujo en una dimensión

Un dibujo con una dimensión tendrá solo lo largo.

Que es un dibujo en dos y tres dimensiones

Un dibujo en dos dimensiones, tiene el largo y el ancho. Por ejemplo un cuadrado, rectángulo, círculo. (figuras geométricas)

Y un dibujo en tres dimensiones mostrará largo, ancho y profundidad. Por ejemplo una esfera, un cubo, una pirámide. (Cuerpos geométricos)

Que es una recta

Una sucesión infinita de puntos, situados en una misma dirección. Una recta tiene una sola dimensión: la longitud.

Que es una circunferencia

Se llama circunferencia al lugar geométrico de los puntos del plano que equidistan de un punto fijo llamado centro.

Que es un polígono

Un polígono es una figura geométrica formada por segmentos consecutivos no alineados, llamados lados.

Cambio de escala

Supongamos que se nos pide el dibujo de un objeto que mide 1,00

X 2,00 metros.Evidentemente, el tamaño a que ejecutaremos el dibujo no ha de

ser el real, pues resultaría demasiado grande, por lo tanto

será necesario reducirlo proporcionalmente.

Cambio de escala

Puntos: Se especifican a partir de su localización y color.

Segmentos de recta: especifican a partir de un par de puntos que representan sus extremos.

Algoritmos básicos

Escoger un método de discretización para una primitiva gráfica.

permitan evaluar y comparar las ventajas y desventajas de las distintas alternativas.

Especificaciones de una discreción

Apariencia: tenga una “apariencia recta” más allá de que se hallan escogido los pixeles matemáticamente más adecuados.

Especificaciones de una discreción

Simetría e invariancia geométrica

Es la discretización de un segmento no debe variar si dicho segmento setraslada a otra localización en el espacio, o si es rotado, etc.

Especificaciones de una discreción

Simplicidad y velocidad de cómputo:

Son métodos que tienden a no depender de estructuras complejas y a ser directamente implementables en hardware específico de baja complejidad.

Especificaciones de una discreción

Dada una primitiva gráfica a discretizar, debemos encontrar los pixeles que larepresenten de la manera más correcta posible. Para ello, lo más adecuado escaracterizar matemáticamente a dicha primitiva.

Métodos de discretización

Evaluar su ecuación diferencial a diferencias finitas: Este método,denominado DDA (discrete diference analyzer) consiste en plantear la ecuacióndiferencial de la primitiva a discretizar, y luego evaluar dicha expresión a intervalosadecuados.

Métodos de discretización

Análisis del error: Estos métodos fueron desarrollados por Bressenham y sebasan en analizar, dado un pixel que pertenece a la discretización de la primitiva, cuál es el próximo pixel que minimiza una determinada expresión que evalúa el error que comete la discretización.

Métodos de discretización

El análisis de los métodos de discretización de rectas parte de considerar el comportamiento esperado en determinados casos particulares. Dichos casos surgen de suposiciones específicas que simplifican el problema.

Segmentos de recta

La Figura, donde el origen es el pixel que corresponde a la discretización del punto(x0;y0) y la zona sombreada a los lugares donde puede ubicarse el punto (x1;y1 ).

Segmentos de recta

El método busca encontrar una secuencia de n + 1 puntos tales que (x0;y0) =(x0;y0); (x1;y1 ); … (xn;yn) = (x1;y1 ). La discretización de cada uno de ellos son los pixeles de la discretización del segmento.

Segmentos de recta DDA

E Determina la “frecuencia” de muestreo del segmento.

Observese que los puntos extremos (x0; y0) a (x1;y1 ) son en efecto puntos y por lo tanto están ubicados en cualquier lugar dentro del pixel quecorresponde a su discretización.

Segmentos de recta DDA

Segmentos de recta DDA

La ejecución del algoritmo daría como resultado algo similar a lo mostrado en la Figura

Segmentos de recta DDA

Desventajas de DDA

• Requiere aritmética de punto flotante (valores reales), la que es más lenta y costosa.• Es inapropiado para implementar por hardware (aritmética real).• El redondeo es una operación real adicional.• Las líneas largas pueden verse afectadas por el error de redondeo.

Segmentos de recta DDA

Son algoritmos que consiste en que todas las operaciones se realizan en aritmética entera por medio de operaciones sencillas, y por lo tanto, su ejecución es más rápida y económica, y es de fácil implementación con hardware específico.

Segmentos de Bressenham

Es conveniente efectuar la llamada al algoritmo luego de discretizar losextremos. Esto significa que (x0;y0) y (x1; y1 ),y por lo tanto Dx y Dy son enteros.

Segmentos de Bressenham

Luego, si p es un pixel que pertenece a ladiscretización del segmento, entonces enlas condiciones particulares mencionadas,el próximo pixel solamente puede ser elubicado a la derecha (E o “hacia el este”),o el ubicado en diagonal hacia la derecha y hacia abajo (D o “en diagonal”) como semuestra en la Figura

Segmentos de Bressenham

Segmentos de Bressenham

La decisión de ir hacia el paso E o D se toma en función del error que se comete en cada caso. En este algoritmo se considera que el error es la distancia entre el centro del pixel elegido y el segmento de recta, medida en dirección del eje Y positivo del espacio de pantalla (es decir, hacia abajo). Si el error en p fuese cero, entonces al ir hacia E el error pasa a ser m (la pendiente del segmento), y en D elerror pasa a ser m - 1 (ver Figura).

Segmentos de Bressenham

Segmentos de Bressenham

En general, si en p el error es e, la actualización del error es:Paso a E : e = e + mPaso a D : e = e + m –1Por lo tanto, la elección del paso E o D depende de que el valor absoluto de e+msea o no menor que el valor absoluto de e+m-1. Expresado de otra manera, sea e el error en un determinado pixel.

Segmentos de Bressenham

Segmentos de Bressenham

Si e +m> 0.5 entonces el segmento de recta pasa más cerca del pixel D, y si no, pasa más cerca del pixel E (ver Figura anterior)

Segmentos de Bressenham

 Como en el caso de los segmentos de recta, en la discretización de circunferencias o círculos es posible trabajar un sólo segmento de la circunferencia y se obtienen las demás por simetría. Igualmente se dispone de algoritmos DDA y de Bressenham para el dibujo de circunferencias.

Discretización de circunferencias

Para poder realizar el dibujo de la circunferencia usaremos las ecuaciones de la circunferencia en coordenadas polares que son:x = r * cosqy = r *senq

Discretización de circunferencias

Estas ecuaciones serán las que ocuparemos para calcular cada punto (x,y) del círculo, donde el r será obviamente el radio de círculo y q será el ángulo que forma el radio con la parte positiva del eje x. En forma gráfica sería así:

Discretización de circunferencias

Discretización de circunferencias

El ángulo deberá estar en radianes ya que las funciones de seno y coseno que incluye Java, trabajan con los ángulos en radianes. La fórmula para transformar grados a radianes es la siguiente:

Discretización de circunferencias

Discretización de circunferencias

Se considera un polígono una figura cerrada, formada a partir de varias líneas. Para la discretización de polígonos se considerarán 2 tipos de polígonos: los irregulares y los regulares,

Dibujo de polígonos

La graficación de polígonos irregulares se realiza a partir de un conjunto de puntos que se unen secuencialmente, el polígono se cierra al unir el primer y último puntos.

Dibujo de polígonosirregulares

Dibujo de polígonosirregulares

Un polígono regular se compone de aristas/lados de igual longitud. Esto implica que el ángulo entre cada arista contigua es el mismo.Podemos usar la siguiente fórmula: a= 2 / N, donde a es el ángulo, y N es la cantidad de lados

Dibujo de polígonosregulares

Dibujo de polígonosregulares

Gracias