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 为了澄清。我很乐意帮你开始。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓为什么Java AudioEffect不支持双簧管?   增加内存后出现java IntelliJ堆大小错误   在unix/linux中工作的java中将unicode字符串转换为ASCII   java是否缺少正确对齐输出的值?   java Spring 3 MVC:动态表单中的onetomany(创建/更新时添加/删除)   java在接口中创建两个通用参数   lambda使用Java 8从嵌套列表中使用forEach查找项的替代方法是什么?   Java正则表达式匹配10位电话号码,中间有空格   linux将log4j外部化。使用命令行Java的属性文件   带有SSL的java简单RMI服务器   java无法为事务[…]打开JPA EntityManager无法获取驱动程序类“null”和URL“null”的连接   Android设备上的java Oauth Foursquare   for循环的ImageButton名称的java骰子模拟浓缩   java有没有简单的1d条形码阅读器?   如何在调用resultset后解决“无效字符串或缓冲区长度”。从java到访问mdb的getString()连接   在Java8中,是否可以使用JVM参数来控制何时(或在什么条件下)卸载类?