Answer the question
In order to leave comments, you need to log in
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 questionAsk a Question
731 491 924 answers to any question