D
D
Dragon12020-10-05 13:24:13
Algorithms
Dragon1, 2020-10-05 13:24:13

How can the code be optimized (Bresenham's algorithm)?

import numpy as np
import matplotlib.pyplot as plt
img=np.ones((10,30,3)) 
def DrawLine(x1,y1,x2,y2):
    dx = abs(x2-x1)
    dy = abs(y2-y1)

    if x1<x2:
        xs=1 
    else:
        xs=-1   
        
    if y1<y2:
        ys=1
    else:
        ys=-1
     
    x=x1
    y=y1  
    
    p=2*dy-dx   
    

    if dx>dy:
        while x<x2:
            x=x+xs
            if p > 0:
                y=y+ys
                p=p+2*dy-2*dx
            else:
                p=p+2*dy  
                
            img[y,x]= 0
     
    return;
def DrawLine1(y1,x1,y2,x2):
    dy = abs(y2-y1)
    dx = abs(x2-x1)

    if y1<y2:
        ys=1 
    else:
        ys=-1   
        
    if x1<x2:
        xs=1
    else:
        xs=-1
     
    y=y1
    x=x1  
    
    p=2*dx-dy   
    

    if dy>dx:
        while y<y2:
            y=y+ys
            if p > 0:
                x=x+xs
                p=p+2*dx-2*dy
            else:
                p=p+2*dx  
                
            img[y,x]= 0
     
    return;
"0"
DrawLine(4,2,8,2)
DrawLine(4,6,8,6)
DrawLine1(2,8,6,8)
DrawLine1(1,4,6,4)
plt.imshow(img)
plt.show()

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question