#boundary #circle #calculate #integer #discrete #bitmap #coordinates

circle_boundary

一个用于计算圆边界的Rust库,坐标以位图风格的离散整数给出

9个版本

使用旧的Rust 2015

0.1.19 2019年9月15日
0.1.18 2019年9月15日
0.1.16 2018年8月16日

#228 in 科学

28 每月下载量

ISC 许可证

140KB
207

圆边界

这是一个单一用途的库。本库的目标是返回圆边界,如图所示,以离散像素表示。

five radius circle boundary

用法

在主文件顶部包含库,如下所示。

extern crate circle_boundary;

然后,通过在需要使用它的文件顶部添加以下行,获取对公共 calculate 函数的访问。

use circle_boundary::calculate;
use circle_boundary::Boundary;

然后,您可以使用计算函数返回一个边界数据结构向量。每个边界结构包含一对笛卡尔坐标(x和y),其中x由单个数字表示其位置,y由一个范围表示,表示边界在y轴上的位置。

calculate 函数期望以表示为第一个两个参数的原点,一个x值作为 i32 整数和一个y值作为 i32 整数。最后一个参数是你想要的圆边界的半径,表示为 i32 整数。

let bounds = calculate(0, 0, 3);

如上所述,返回的值是一个表示边界的向量

vec![
    Boundary { x: -3,  y: -1..1 },
    Boundary { x: -2,  y: -2..2 },
    Boundary { x: -1,  y: -3..3 },
    Boundary { x:  0,  y: -3..3 },
    Boundary { x:  1,  y: -3..3 },
    Boundary { x:  2,  y: -2..2 },
    Boundary { x:  3,  y: -1..1 },
];

这可以表示为以下图。其中,深灰色方块表示原点,绿色方块表示y范围的下限,红色方块表示y范围的上限。

three radius circle boundary

非原点示例

正如所注,calculate 函数可以接受坐标,这些坐标将结果从 (0,0) 原点偏移。如果你传入一个偏移量,如

calculate(9, 3, 7);

这将返回以下向量

vec![
    Boundary { x: 2, y: 1..5 },
    Boundary { x: 3, y: -1..7 },
    Boundary { x: 4, y: -2..8 },
    Boundary { x: 5, y: -3..9 },
    Boundary { x: 6, y: -3..9 },
    Boundary { x: 7, y: -4..10 },
    Boundary { x: 8, y: -4..10 },
    Boundary { x: 9, y: -4..10 },
    Boundary { x: 10, y: -4..10 },
    Boundary { x: 11, y: -4..10 },
    Boundary { x: 12, y: -3..9 },
    Boundary { x: 13, y: -3..9 },
    Boundary { x: 14, y: -2..8 },
    Boundary { x: 15, y: -1..7 },
    Boundary { x: 16, y: 1..5 },
];

它代表以下圆边界,其中黑色方块表示 (0,0) 原点

seven radius circle boundary with offset

示例

有关如何使用此库的更多示例,您可以查看此存储库中的 examples/ 文件夹。您可以使用以下命令运行每个示例

cargo run --example <example-name>

例如

cargo run --example introduction

将运行入门示例文件 examples/introduction.rs

开发

为 Rust 构建项目

安装 Rust 和 Cargo,然后运行

cargo build

为 Web 构建项目

安装 wasm-pack,然后运行

wasm-pack build
  • README_NPM.md 文件复制到 /pkg 文件夹,作为 README.md
  • 确保将 images 文件也复制到生成的 /pkg 文件夹中。

运行测试

使用 Cargo 命令

cargo test

依赖项

~1-2MB
~42K SLoC