sábado, 21 de septiembre de 2013

2.1 Trazo de lineas rectas

Trazo de lineas rectas.

Primero debemos definir algunos conceptos como punto, linea y trazo

Punto:  (Del lat. punctum). Señal de dimensiones pequeñas, ordinariamente circular, que, por contraste de color o de relieve, es perceptible en una superficie.




Linea:  Trazo largo y continuo en una sola dirección, la que permanecerá invariable durante toda su extensión.






Trazo: Delineación con que se forma el diseño o planta de cualquier cosa.












Por lo que podemos confirmar, el puno es una "señal"  muy pequeña con forma circular originalmente y perceptible a simple vista; y la unión sucesiva de éstos forma una linea que tiene una dirección, magnitud, un punto de origen (DONDE SE INICIA EL TRAZO DE LA RECTA ) y punto final (HASTA DONDE LLEGA EL TRAZO); y al aplicarse estos elementos en algún gráfico o imagen, describe un contorno o un borde al que se llama trazo.

Estos elementos son tan importantes y básicos cualquier arte, técnica o ciencia que necesita plasmar un algo en una superficie.

Las formas de graficar una linea.
Hay dos tipos básicos de gráficos: Imágenes en mapa de bits (o rasterizadas) e imágenes vectoriales. En el primer caso, a continuación, se hablara de rectas rasterizadas.

Algoritmo DDA (Analizador Diferencial Digital)  para generación de líneas.

DDA: El Algoritmo DDA es un algoritmo de línea de conversión de rastreo que se basa en el cálculo ya sea en el incremento de X o en el incremento de Y. La finalidad de este algoritmo es determinar los valores enteros correspondientes más próximos a la trayectoria de la línea para la otra coordenada.
Una implementación de hardware o software de un Analizador Diferencial Digital (DDA) se usa para la interpolación lineal de variables sobre un intervalo entre un punto de comienzo y un punto de fin.
 Los DDAs se usan para rastreo de lineas, triángulos y polígonos. En la implementación mas simple del algoritmo DDA interpola valores en intervalo [(xinicio, yinicio), (xfin, yfin)] por calculo para cada xi las ecuaciones xi = xi−1+1, yi = yi−1 + Δy/Δx, donde Δx = xfin − xinicio y Δy = yfin − yinicio.
Explicando el algoritmo.

Si m>=0 (pendiente positiva)
  Si m<=1
    de izquierda a derecha
       * muestreo de x (Δx =1)
       * yk+1 = redondeo(yk + m) k=1,2,...
    de derecha a izquierda
       * muestreo de x (Δx =-1)
       * yk+1 = redondeo(yk - m) k=1,2,...
  Si m > 1 (para evitar la aparición de agujeros)
    de izquierda a derecha
       * muestreo de y (Δy =1)
       * xk+1 = redondeo(xk + 1/m) k=1,2,...
    de derecha a izquierda
       * muestreo de y (Δy =-1)
       * xk+1 = redondeo(xk - m) k=1,2,...
Si m<0 (pendiente negativa)
  Si |m|<1
    de izquierda a derecha
       * muestreo de x (Δx =1)
       * yk+1 = redondeo(yk + m) k=1,2,...
    de derecha a izquierda
       * muestreo de x (Δx =-1)
       * yk+1 = redondeo(yk - m) k=1,2,...
  Si |m| > 1 (para evitar la aparición de agujeros)
    de izquierda a derecha
       * muestreo de y (Δy =1)
       * xk+1 = redondeo(xk + 1/m) k=1,2,...
    de derecha a izquierda
       * muestreo de y (Δy =-1)
       * xk+1 = redondeo(xk - m) k=1,2,...


Algoritmo de Bresenham

El algoritmo de Bresenham se generaliza para líneas con una pendiente arbitraria al considerar la simetría entre los diversos octantes y cuadrantes del plano de xy.
Para una línea con una pendiente m > 1, intercambiamos las funciones de las direcciones de x y y, o sea, pasamos a lo largo de y en pasos unitarios y calculamos los valores sucesivos de x que se aproximan mas a la trayectoria de la línea. Asimismo, podemos revisar el programa para trazar píxeles iniciando desde cualquier extremo.
Explicando el algoritmo.

Si 0<|m|<1 (m mayor que 0 y menor que 1)
1.- Capturar los extremos de la línea y se almacena el extremo izquierdo en las coordenadas (x0,y0)  que es el origen del sistema de coordenadas.
2.- Se carga las coordenadas (x0,y0) en el buffer de estructura  donde se trazara el primer punto.
3.- Se calculan las constantes  Δx ,Δy, 2Δy y 2Δy-Δx (Δx es lo mismo que decir, incremento en x) y se obtiene el valor inicial para el parámetro de decisión con la siguiente formula  p0=2Δy-Δx.
Para j=0 (j es una variable auxiliar), mientras j<Δx  (j mayor que incremento en x).
--En cada xk a lo largo de la línea, que inicia en k=0 se efectúa la prueba siguiente:
Si pk<0
--Trazamos (xk+1,yk).
--Asignamos pk+1= pk+2Δy.
Si no se cumple.
--Trazamos (xk+1,yk+1).
--Asignamos pk+1= pk+2Δy-2Δx.
Pero si |m|>1
*Recorremos la dirección en pasos unitarios y calculamos los valores sucesivos
de x que se aproximen más a la trayectoria de la línea.





Algoritmo de Xiaolin Wu
El algoritmo de Xiaolin Wu es una mejora del algoritmo de Bresenham que permite dibujar rectas en dispositivos de gráficos rasterizados reduciendo el aliasing. El algoritmo se basa en dibujar parejas de pixeles a lo largo del trazado de la recta con diferentes intensidades en función de la cercanía a la recta real.
File:XiaolinWuLine.png


Gráficos Vectoriales

Un gráfico vectorial es toda imagen digital formada por diferentes objetos geométricos independientes. Cada uno de estos elementos definido por parámetros matemáticos como la forma, posición, color, el tipo y grosor de contorno, etc.

Los gráficos vectoriales son en su formato completamente distintos a los gráficos de mapas de bits o también llamados matriciales, los cuales están constituidos por pixeles.

Los vectores tienen la ventaja sobre los pixeles de ser escalables, es decir, se puede aumentar su tamaño conservando su calidad original. Lo que no ocurre con los gráficos a base de pixeles que presentan degradación de la calidad al aumentar el tamaño.

No hay comentarios.:

Publicar un comentario