2个版本 (1个稳定版)

1.0.3 2022年1月10日
0.1.0 2022年1月10日

#551 in 数学

Download history 3/week @ 2024-03-09 8/week @ 2024-03-30 1/week @ 2024-04-06

每月113次下载

MIT/Apache

23KB
297

简简单单的噪声生成器和分形布朗运动算法。

使用use simple_simplex::NoiseConfig;导入

Simple-Simplex是一个用于生成值的库。这被称为noise

Simple-Simplex还应用了被称为Fractal Brownian MotionFBM的技术到生成的值上。

当许多这样的noise值被生成并放入数组/列表/向量中时,它们被称为noisemaps。Noisemaps可用于许多事情,例如生成图像、游戏《无人之地》/《我的世界》中的地形、粒子效果、数字艺术,甚至是程序生成的地牢。

Simple-Simplex支持...

  • 生成噪声值、应用分形布朗运动以及将输出转换为范围。

  • 在不应用分形布朗运动或范围的情况下生成噪声值。

  • 使用output()output_1d()方法将Simplex噪声/FBM值直接输出到终端的ascii格式。

以下:使用output()方法的示例,在VS Code终端中发送。output()的示例

以下为在 VS Code 终端中发送的 output_1d() 方法的示例。 output_1d() 的示例

output()output_1d() 允许用户了解给定噪声的最终噪声图将看起来像什么。

快速入门指南

如果您还不了解 FBM(分形布朗运动)、Fractal Brownian Motionnoise(噪声)、Simplex Noise(简并噪声)或 noisemap(噪声图)等术语,我建议您阅读 /docs 中的 TERMSNDEF.md。

本节将帮助您开始使用 simple-simplex

1: 创建噪声配置。

simple-simplex 使用所谓的 Noise Configuration(噪声配置)。请看下面的示例


    use simple_simplex::NoiseConfig;

    let config: NoiseConfig = NoiseConfig::new(
        3, // Octaves
        0.01, // X-Frequency
        0.01, // Y-Frequency
        0.05, // Amplitude
        2.5, // Lacunarity
        0.5, // Gain
        (0.0, 255.0), // range
        4201337 // seed
    );

在上面的图像中,我们正在创建一个新的 NoiseConfig。一个 NoiseConfig 包含关于 FBM 将如何表现的数据。有关这些变量如何表现的更深入解释,请参阅 /docs 中的 NOISECONFIG.md。

2: 生成值。

创建噪声配置后,您就可以开始生成值了!

有几个方法可供您立即使用

  1. config.generate_raw():

    生成一个 原始 简并噪声值。这里的“原始”意味着不对结果应用 FBM。该值不转换为范围。

  2. config.generate_raw_range():

    生成一个 原始 简并噪声值。该值没有应用 FBM。值转换为噪声配置中指定的范围。

  3. config.generate_range():

    生成一个应用了 FBM 的简并噪声值。这意味着应用了 FBM。该值转换为指定的范围。

  4. config.generate_rangeless():

    生成一个应用了 FBM 的简并噪声值。这意味着应用了 FBM。该值不转换为指定的范围。

  5. config.analyze():

    生成大量值并在终端打印关于配置输出的数据。当前功能不完整。打印

    • 最大值数据。
    • 最小值数据。
  6. config.output():

    生成并输出一个噪声图到终端。注意,size 变量既指输出图的宽度也指高度。请确保不要使图太宽,否则它将卷绕您的终端窗口。

    output() 还需要一个向量 ASCII 字符来输出。看起来像这样

    let vector: Vec<char> = vec![' ', '.', '-', '=', 'z','X', '#'];
    

    这些字符是该方法将使用的输出。它们必须是升序或降序。

  7. config.output_1d()

    生成并输出一个 1d 噪声图到终端。不要让 height 变量太高。一个好的数字是 30。请确保不要让 length 变量太高,否则它将卷绕终端窗口。

现在您可以从生成值开始了!

如果您有任何建议/错误报告/功能请求等,请将其作为问题提交。

依赖关系

~335KB