Saltar al contenido

ejemplo de código python del algoritmo de dibujo lineal de bresenham

Hola usuario de nuestro sitio, tenemos la respuesta a lo que buscabas, has scroll y la encontrarás un poco más abajo.

Ejemplo: algoritmo de línea de Python Bresenham

defget_line(start, end):"""Bresenham's Line Algorithm
    Produces a list of tuples from start and end
 
    >>> points1 = get_line((0, 0), (3, 4))
    >>> points2 = get_line((3, 4), (0, 0))
    >>> assert(set(points1) == set(points2))
    >>> print points1
    [(0, 0), (1, 1), (1, 2), (2, 3), (3, 4)]
    >>> print points2
    [(3, 4), (2, 3), (1, 2), (1, 1), (0, 0)]
    """# Setup initial conditions
    x1, y1 = start
    x2, y2 = end
    dx = x2 - x1
    dy = y2 - y1
 
    # Determine how steep the line is
    is_steep =abs(dy)>abs(dx)# Rotate lineif is_steep:
        x1, y1 = y1, x1
        x2, y2 = y2, x2
 
    # Swap start and end points if necessary and store swap state
    swapped =Falseif x1 > x2:
        x1, x2 = x2, x1
        y1, y2 = y2, y1
        swapped =True# Recalculate differentials
    dx = x2 - x1
    dy = y2 - y1
 
    # Calculate error
    error =int(dx /2.0)
    ystep =1if y1 < y2 else-1# Iterate over bounding box generating points between start and end
    y = y1
    points =[]for x inrange(x1, x2 +1):
        coord =(y, x)if is_steep else(x, y)
        points.append(coord)
        error -=abs(dy)if error <0:
            y += ystep
            error += dx
 
    # Reverse the list if the coordinates were swappedif swapped:
        points.reverse()return points

Puedes patrocinar nuestro estudio escribiendo un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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