Conversión de escaneo de algoritmos de línea y dibujo de línea

 SCAN Conversión de línea:

  • Una recta une dos puntos.
  • Es un elemento básico en gráficos.
  • Necesitará dos puntos entre los cuales dibujar una línea para dibujar una línea.

Una línea, o un segmento de línea, puede describirse únicamente mediante dos puntos, según la geometría. También sabemos por el álgebra que una línea puede definirse por una pendiente, comúnmente denotada por la letra m, y una intersección con el eje y, denotada por la letra b. Una línea en gráficos por computadora generalmente se define por dos puntos finales. Sin embargo, la mayoría de los algoritmos de trazado de líneas calculan la pendiente y el intercepto en y como salidas intermedias.

Algoritmos de dibujo de líneas:
dadas las restricciones inherentes a una visualización de trama, el propósito de cada método de dibujo de líneas es producir la mejor aproximación factible de una línea ideal. Antes de entrar en algoritmos de dibujo de líneas específicos, es una buena idea pensar en las necesidades de dichos algoritmos en general.

Los criterios de diseño principales son los siguientes.

  • Las líneas rectas aparecen como líneas rectas.
  • Las líneas rectas comienzan y terminan con precisión.
  • Las líneas que se muestran deben tener un brillo constante a lo largo de su longitud, independientemente de la orientación y la longitud de la línea.
  • Las líneas deben trazarse rápidamente.

Método-1: método directo:
en este algoritmo, tenemos dos puntos finales. Encontramos la pendiente de la línea usando ambos puntos y colocamos la pendiente en la ecuación de la línea y = mx + b.

Luego encontramos el valor de b igualando x e y a 0. Después de esto, tenemos una relación entre x e y. Ahora aumentamos el valor de x y encontramos el valor correspondiente de y.
Estos valores serán los puntos intermedios de la línea. Después de encontrar los puntos intermedios, trazaremos esos puntos y dibujaremos la línea.

                               

FIG – Método directo

Método 2: algoritmo DDA (analizador diferencial digital):
la técnica incremental se utiliza en este algoritmo. Significa que podemos encontrar las próximas coordenadas usando las coordenadas pasadas como guía. En este método, se analiza la diferencia de punto de píxel y, según el análisis, se puede dibujar la línea.

Comenzaremos con la posición inicial y avanzaremos hasta la posición final buscando lugares intermedios. La pendiente de la línea será la razón de la diferencia de las coordenadas y y la diferencia de las coordenadas x. 

Δy = ( y2 -y1 ), Δx = (x2 - x1) 
where, (x1, y1) and (x2, y2) are the endpoints.

El algoritmo del analizador diferencial digital se basa en los valores de Δx y Δy.

Δy = m * Δx , Δx = Δy / m

El valor de la pendiente será positivo o negativo. Si el valor de la pendiente es positivo, los valores de Δx y Δy aumentan; de lo contrario, sus valores disminuyen.

         (i).   If (m < 1): xN = x1 + 1 ,  yN = y1 + m  
         (ii).  If (m > 1): xN = x1 + 1 / m ,  yN = y1 +1  
         (iii).  If (m = 1): xN = x1 + 1 , yN = y1 + 1 

                                              

FIG = algoritmo DDA

Método 3: generación de líneas de Bresenham:
otro procedimiento de conversión de exploración incremental es el algoritmo de Bresenham. La gran ventaja de este algoritmo es que utiliza solo cálculos de enteros.

El cálculo de este método es increíblemente rápido, por lo que la línea se dibuja rápidamente. Necesitaremos los dos puntos finales en esto y luego tenemos que encontrar los parámetros de decisión.

Supongamos que (x1,y1) y (x2,y2) son los dos puntos.

So, dx = x2-x1 and dy = y2-y1

La fórmula para el parámetro de decisión es: di = 2dy – dx.

           ->   If di >= 0:
             Plotted points are,
             di +1 = di + 2dy - 2dx  ( i+1 is in base of d )
            xN = x1 + 1  ,  yN = y1 + 1  
            -> If di < 0:
             Plotted points are,
           di +1 = di + 2dy  ( i+1 is in base of d )
           xN = x1 + 1  , yN = y1 

Fig = algoritmo de línea de Bresenham

Publicación traducida automáticamente

Artículo escrito por kamal251199 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *