#分形 #2D #图形 #分形

nightly htree

提供 2D H-Tree 内部包含的线条。查看 https://en.wikipedia.org/wiki/H_tree

4 个版本

0.1.3 2022 年 11 月 4 日
0.1.2 2022 年 11 月 3 日
0.1.1 2022 年 11 月 3 日
0.1.0 2022 年 11 月 3 日

#449 in 图形 API

MIT 许可证

45KB
86

Htree

HTree 分形的最小化包。

示例用法

以下代码片段将绘制一个缩放因子为 $700$ 的 6 阶 HTree。


use htree::HTree;
use image::{ImageBuffer, Luma};
use imageproc::drawing::draw_line_segment_mut;

let order=5;
let htree: HTree<f32> = HTree::new(order);

// scale fractal by a factor of 700
let scale = 700f32;

//dimensions of resulting image
let width = (scale * 1f32) as u32;
let height = (scale * 1f32 / 2f32.sqrt()) as u32;

let mut image: ImageBuffer<Luma<u8>, Vec<u8>> = ImageBuffer::new(width, height);
// white background
image.fill(255u8);

let black = Luma([0u8]);
for (start, stop) in htree.into_iter().map(|(start, stop)| {
    (
        (start.0 * scale, start.1 * scale),
        (stop.0 * scale, stop.1 * scale),
    )
}) {
    // Draw a line of the HTree in black
    draw_line_segment_mut(&mut image, (start.0, start.1), (stop.0, stop.1), black);
}
let path=format!("resources/example_htree_order_{order}.png");
image.save(path);

此代码片段的输出为

依赖项

~465KB