3 个版本
使用旧的 Rust 2015
0.2.2 | 2018 年 11 月 12 日 |
---|---|
0.2.1 | 2018 年 11 月 9 日 |
0.2.0 | 2017 年 11 月 18 日 |
#1641 在 算法 中
1MB
300 行
包含 (WOFF 字体,120KB) docs/Heuristica-Italic.woff,(WOFF 字体,90KB) docs/FiraSans-Medium.woff,(WOFF 字体,92KB) docs/FiraSans-Regular.woff,(WOFF 字体,56KB) docs/SourceCodePro-Regular.woff,(WOFF 字体,56KB) docs/SourceCodePro-Semibold.woff,(WOFF 字体,49KB) docs/SourceSerifPro-Bold.woff 和更多。
fuss

Fuss - Rust 的小巧轻量级 simplex 噪声生成器。
此库仅提供生成 2D 和 3D simplex 噪声的功能,以及通过总和分贝(分形布朗运动)归一化噪声的能力。
查看文档.
入门指南
先决条件
将 fuss 添加到您的 Cargo.toml
[dependencies]
# Get the current stable
fuss = "0.2.1"
示例
所有 fuss 交互都通过 Simplex
结构体完成。
下面是如何获取一个
extern crate fuss;
use fuss::Simplex;
let sn = Simplex::new();
Simplex
允许您生成 2D 和 3D 噪声。
let sn = Simplex::new();
sn.noise_2d(1.0, -1.0);
sn.noise_3d(1.0, -1.0, 0.0);
这使得您可以生成大量点的噪声
let sn = Simplex::new();
let mut map = Vec::<Vec<Vec<f32>>>::new();
for x in 0..10 {
map.push(Vec::<Vec<f32>>::new());
for y in 0..10 {
map[x as usize].push(Vec::<f32>::new());
for z in 0..10 {
map[x as usize][y as usize].push(sn.noise_3d(x as f32, y as f32, z as f32));
}
}
}
Simplex
根据 Rust RNG 生成自己的排列表,但是您可以应用自己的种子来获得 Simplex
,如下所示
let sn = Simplex::from_seed(vec![0, 1, 2, 3, 4, 5]);
let other_sn = Simplex::from_seed(vec![0, 1, 2, 3, 4, 5]);
// The two simplexes will generate the same noise for the same points
// if given the same RNG seed
assert_eq!(sn.noise_2d(0.0, 0.0), other_sn.noise_2d(0.0, 0.0));
Simplex
使用与 SeedableRng
相同类型的种子,是一个 usize
的切片,但是为了使其更容易,Simplex
将接受一个 Vec<usize>
。
运行测试
运行
$ cargo test
以运行所有单元测试和文档测试。
版本控制
fuss 遵循 cargo 的语义版本控制规则
- 在达到1.0.0版本之前,任何改动都可以,但如果做出重大更改,我们会增加次版本号。在Rust中,重大更改包括向结构体添加字段或向枚举添加变体。
- 在1.0.0版本之后,我们只有在增加主版本号时才会做出重大更改。
- 在1.0.0版本之后,在小型版本中我们不添加任何新的公共API(不添加任何新的pub内容)。如果你添加任何新的pub结构体、特质、字段、类型、函数、方法或其他任何内容,我们总是增加次版本号。
- 我们使用带有三个数字部分的版本号,如1.0.0,而不是1.0。
许可证
本项目遵循MPPL 2.0许可证 - 详细信息请参阅LICENSE.md文件。