#line #drawing #points #iterator-based #algorithm #integer-only

bresenham

布里森汉姆线算法的快速、基于迭代器和仅整数实现

2个版本

使用旧的Rust 2015

0.1.1 2016年8月14日
0.1.0 2016年8月14日

#71 in 渲染引擎

Download history 175/week @ 2024-03-13 249/week @ 2024-03-20 322/week @ 2024-03-27 288/week @ 2024-04-03 347/week @ 2024-04-10 261/week @ 2024-04-17 228/week @ 2024-04-24 249/week @ 2024-05-01 284/week @ 2024-05-08 234/week @ 2024-05-15 254/week @ 2024-05-22 282/week @ 2024-05-29 466/week @ 2024-06-05 285/week @ 2024-06-12 243/week @ 2024-06-19 269/week @ 2024-06-26

1,340 每月下载次数
用于 6 crates

MIT 许可证

6KB
131

bresenham-rs

使用迭代器遍历线上的所有点,在Rust中实现布里森汉姆线绘制算法。编译器内联时,大部分(如果不是全部)开销都应该消失。

示例使用

for (x, y) in Bresenham::new((0, 1), (6, 4)) {
    println!("{}, {}", x, y);
}

将打印

(0, 1)
(1, 1)
(2, 2)
(3, 2)
(4, 3)
(5, 3)

lib.rs:

基于迭代器的布里森汉姆线绘制算法

[布里森汉姆线绘制算法] (https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm) 是一种快速的算法,用于在两点之间绘制线条。这个crate实现了快速的整数变体,采用基于迭代器的方法以增加灵活性。它计算坐标,而不需要了解任何关于绘图方法或表面的信息。

示例

extern crate bresenham;
use bresenham::Bresenham;

fn main() {
    for (x, y) in Bresenham::new((0, 1), (6, 4)) {
        println!("{}, {}", x, y);
    }
}

将打印

(0, 1)
(1, 1)
(2, 2)
(3, 2)
(4, 3)
(5, 3)

无运行时依赖