bresenham画线算法的实现
bresenham的Python项目详细描述
Bresenham模块
bresenham画线算法的一个简单实现。
请参阅the Wikipedia entry以了解有关内容的详细信息。
注意,这是一个简单的实现。 它是用纯python编写的(例如没有numpy),因此它相对较慢。
我发现将经典算法(其巧妙之处在于 只使用整数–这是一个现在不太相关的约束) 使用python生成器(遵循 “可执行伪代码”,抽象出输出子程序)。 我希望其他人也能欣赏这个代码。
如需认真使用,请查看以下内容:
- skimage.draw.line,它解决了同样的问题fast。
- 将解决方案概括为<;var>;n<;/var>; 尺寸。
安装
在python虚拟环境中,执行以下操作:
python -m pip install bresenham
从git签出安装(在可编辑模式下):
python -m pip install -e.
要在没有虚拟环境的情况下安装,请添加--user选项。
用法
bresenham(x0, y0, x1, y1)函数返回 从(x0, y0)到(x1, y1)的行的坐标。
例如,从(-1,-4)到(3,2)的直线的坐标是:
>>> from bresenham import bresenham >>> list(bresenham(-1, -4, 3, 2)) [(-1, -4), (0, -3), (0, -2), (1, -1), (2, 0), (2, 1), (3, 2)]
开发
欢迎您加入这个项目!
如果您发现问题,请在github上的Issues page报告。
如果您想开始更改代码或文档,请检查代码 本地使用:
git clone https://github.com/encukou/bresenham
如果您是新手,请阅读关于协作的this guide 在github托管的项目上,比如这个。
如果没有意义,请e-mail the author 为了澄清。我很乐意帮你开始。