python画线段代码_Bresenham画线算法完整代码(python)

这篇博客分享了一个完整的Bresenham画线算法Python实现,能够绘制0-360°的角度线段,包括水平、垂直线。虽然未处理线条越界的边缘截断问题,但提供了清晰的代码逻辑。
摘要由CSDN通过智能技术生成

网上给的算法只能画0-90°的线条(而且还不能水平和垂直线条),我写的这个可以画0-360°。。。调bug调了好久,现在分享给大家,但是没有做线条越界图片边缘的截断(我累了),所以不要让线条超越图片大小,或者你改一下

def BresenhamLine(img,x1, y1, x2, y2, color):

y_neg = False

dx = x2 - x1

if (dx < 0):#向左走,就将起点终点调换

temp = x2

x2 = x1

x1 = temp

temp = y2

y2 = y1

y1 = temp

dx = x2 - x1 # 重新计算dx

dy = y2 - y1

if (dy < 0): # 向下走,就将计算出来的y加个负号

y_neg=True

dy=-dy

x = x1

y = y1#从起点开始

if(dx==0):#打竖画线,向左走换了(x1,y1),(x2,y2),向下走没有换,注意

y=min(y1,y2)

y_end=max(y1,y2)

while(y<=y_end):

img[x, y, color] = 200

y+=1

return img

elif(dy==0):#打横画线

while (x <= x2):

img[x, y, color]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值