gpt4 book ai didi

python - 布雷森纳姆线没有终点站

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:34 25 4
gpt4 key购买 nike

我已经实现了Bresenham algorithm来自Python中的维基百科,但对于某些行它不起作用,例如从1,0到0,1它不会停止并继续形成超长行

def line(x0, y0, x1, y1):
dx = x1 - x0
dy = y1 - y0
sx = x0 < x1 and 1 or -1
sy = y0 < y1 and 1 or -1
err = dx - dy

points = []
x, y = x0, y0
while True:
points += [(x, y)]
if x == x1 and y == y1:
break
e2 = err * 2
if e2 > -dy:
err -= dy
x += sx
if e2 < dx:
err += dx
y += sy
return points

最佳答案

您在 dxdy 的初始化中缺少对 abs 的调用:

dx = abs(x1 - x0)
dy = abs(y1 - y0)

关于python - 布雷森纳姆线没有终点站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7159228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com