5个版本 (破坏性更新)

0.6.0 2023年5月17日
0.5.0 2023年2月13日
0.4.0 2022年12月4日
0.3.0 2022年11月6日
0.2.1 2022年10月25日

173 in 图形API

Download history 90/week @ 2024-03-11 65/week @ 2024-03-18 20/week @ 2024-03-25 87/week @ 2024-04-01 42/week @ 2024-04-08 31/week @ 2024-04-15 41/week @ 2024-04-22 40/week @ 2024-04-29 25/week @ 2024-05-06 33/week @ 2024-05-13 25/week @ 2024-05-20 32/week @ 2024-05-27 47/week @ 2024-06-03 52/week @ 2024-06-10 44/week @ 2024-06-17 22/week @ 2024-06-24

172 每月下载量

MIT 许可证

625KB
3.5K SLoC

rough_piet

Crates.io Documentation License

此crate是介于roughrpietcrate之间的适配器crate。将roughr绘图原语转换为piets路径类型。还具有用于在piet上下文中绘图的便利特性。有关更详细的信息,请参阅roughr crate。

以下示例是rough_piet适配器的输出。

📦 Cargo.toml

[dependencies]
rough_piet = "0.1"

🔧 示例

矩形

let options = OptionsBuilder::default()
    .stroke(Srgba::from_raw(&[114u8, 87u8, 82u8, 255u8]).into_format())
    .fill(Srgba::from_raw(&[254u8, 246u8, 201u8, 255u8]).into_format())
    .fill_style(FillStyle::Hachure)
    .fill_weight(DPI * 0.01)
    .build()
    .unwrap();
let generator = KurboGenerator::new(options);
let rect_width = 100.0;
let rect_height = 50.0;
let rect = generator.rectangle::<f32>(
    (WIDTH as f32 - rect_width) / 2.0,
    (HEIGHT as f32 - rect_height) / 2.0,
    rect_width,
    rect_height,
);
let background_color = Color::from_hex_str("96C0B7").unwrap();

rc.fill(
    Rect::new(0.0, 0.0, WIDTH as f64, HEIGHT as f64),
    &background_color,
);
rect.draw(&mut rc);

🖨️ 输出矩形

rectangle

圆形

let options = OptionsBuilder::default()
    .stroke(Srgba::from_raw(&[114u8, 87u8, 82u8, 255u8]).into_format())
    .fill(Srgba::from_raw(&[254u8, 246u8, 201u8, 255u8]).into_format())
    .fill_style(FillStyle::Hachure)
    .fill_weight(DPI * 0.01)
    .build()
    .unwrap();
let generator = KurboGenerator::new(options);
let circle_paths = generator.circle::<f32>(
    (WIDTH as f32) / 2.0,
    (HEIGHT as f32) / 2.0,
    HEIGHT as f32 - 10.0f32,
);
let background_color = Color::from_hex_str("96C0B7").unwrap();

rc.fill(
    Rect::new(0.0, 0.0, WIDTH as f64, HEIGHT as f64),
    &background_color,
);
circle_paths.draw(&mut rc);

🖨️ 输出圆形

circle

椭圆

let options = OptionsBuilder::default()
    .stroke(Srgba::from_raw(&[114u8, 87u8, 82u8, 255u8]).into_format())
    .fill(Srgba::from_raw(&[254u8, 246u8, 201u8, 255u8]).into_format())
    .fill_style(FillStyle::Hachure)
    .fill_weight(DPI * 0.01)
    .build()
    .unwrap();
let generator = KurboGenerator::new(options);
let ellipse_paths = generator.ellipse::<f32>(
    (WIDTH as f32) / 2.0,
    (HEIGHT as f32) / 2.0,
    WIDTH as f32 - 10.0,
    HEIGHT as f32 - 10.0,
);
let background_color = Color::from_hex_str("96C0B7").unwrap();

rc.fill(
    Rect::new(0.0, 0.0, WIDTH as f64, HEIGHT as f64),
    &background_color,
);
ellipse_paths.draw(&mut rc);

🖨️ 输出椭圆

ellipse

Svg路径

let options = OptionsBuilder::default()
    .stroke(Srgba::from_raw(&[114u8, 87u8, 82u8, 255u8]).into_format())
    .fill(Srgba::from_raw(&[254u8, 246u8, 201u8, 255u8]).into_format())
    .fill_style(FillStyle::Hachure)
    .fill_weight(DPI * 0.01)
    .build()
    .unwrap();
let generator = KurboGenerator::new(options);
let heart_svg_path  = "M140 20C73 20 20 74 20 140c0 135 136 170 228 303 88-132 229-173 229-303 0-66-54-120-120-120-48 0-90 28-109 69-19-41-60-69-108-69z".into();
let heart_svg_path_drawing = generator.path::<f32>(heart_svg_path);
let background_color = Color::from_hex_str("96C0B7").unwrap();

rc.fill(
    Rect::new(0.0, 0.0, WIDTH as f64, HEIGHT as f64),
    &background_color,
);
heart_svg_path_drawing.draw(&mut rc);

🖨️ 输出Svg路径

svgheart

填充实现状态

  • 阴影线
  • 之字形
  • 交叉阴影
  • 虚线
  • 之字形线

🔭 示例

有关更多示例,请参阅示例文件夹。

📝 许可证

在MIT许可证下授权 (LICENSE)。

🚧 贡献

除非您明确说明,否则您提交的任何有意提交给本项目的贡献,根据MIT许可证定义,将按照上述方式授权,不附加任何额外条款或条件。

依赖项

~5.5MB
~116K SLoC