2个版本
0.5.1 | 2021年3月5日 |
---|---|
0.5.0 | 2021年3月5日 |
#646 在 图像
37KB
571 行
crispy_octo_fractals
用于生成和放大定制分形的库。
这是一个非常非常非常初级的版本。它可以运行以生成一个800 x 600的屏幕,显示曼德布罗特集。每次按下一个键盘键之前,请等待屏幕渲染。以下是控制键
-
W A S D:将移动命令发送到窗口。
-
Q E:分别缩小和放大。
-
Esc:关闭窗口和进程。
-
Enter:将当前图像保存到文件夹"/src/saved_images/test.png"。
如果您同时按多个键,它将按顺序冻结运行每个按下的键。如果您通过alt-tab或点击窗口外部将注意力从屏幕移开,它将停止处理事件,直到将焦点返回到屏幕(我想,我今早完成了这个版本)。
所以如果它冻结了,请按ctrl-c强制关闭窗口。
以下是即将到来的更新
-
将使用async允许屏幕在渲染图片时移动。
-
将创建一个用于颜色的trait,以便可以用于生成图片的多个不同功能。它将位于目录"/src/libs/fractal/fractal_state/"中。
-
将创建一个位于"/src/libs/fractal/fractal_state/"的用于处理图像的trait。
-
将更新处理,以便将图像缓冲到gpu而不是由处理器迭代。
好的,但这是什么意思呢?
分形是使用复杂函数生成图片的时髦流行元素。屏幕上的每个像素都是一个坐标,算法迭代增加一个值,直到它达到某个有效条件(或达到最大迭代次数)。
分形的白色部分是达到最大迭代次数的区域。深色区域是需要最低迭代次数的区域。中间的每种颜色只是为了看起来漂亮。
美丽的分形可以非常有趣地放大查看,但它们也需要大量的处理能力来生成。因此,多线程是唯一的选择。我正在使用我的库 kik_sync_service 同时使用 32 个线程。
这对于练习低级、高性能编程来说是一个很好的选择。我为此做了很多研究,但这只是触及到冰山一角。还有很长的路要走。
如何安装和使用它
安装 Rust:它非常快,通常只需要几条命令行。 https://www.rust-lang.net.cn/tools/install
cd 进入一个空文件夹以复制此项目。
使用以下方式复制此项目:
git clone https://github.com/On0n0k1/crispy_octo_fractals.git
使用以下方式编译项目:
cargo build
这需要一些时间来下载和安装所有依赖项。同时,也会有大量的“死代码”警告。
使用以下方式运行项目:
cargo run
可选:运行得更快
前一种方法有效,但它是调试模式。这样会更快
cargo build --release
这将把所有内容编译成一个单一的可执行文件。它将在文件夹 "./target/release/" 中。
cd ./target/release/
./crispy-octo-fractals
它在我的 Linux 计算机上运行。不确定它在 Windows 计算机上会是什么样子。但它们将在同一个文件夹中。
编辑:发布、优化版本仍然在保存图像时失败。请仅在调试模式下保存图像(通过按 Enter 键)。
依赖项
~16MB
~128K SLoC