3个不稳定版本
0.2.1 | 2021年8月11日 |
---|---|
0.2.0 | 2021年8月11日 |
0.1.0 | 2021年8月10日 |
在游戏开发分类中排名1309
21KB
458 代码行
ConvChain (Rust版本)
Maxim Gumin的ConvChain的Rust移植版
ConvChain是一系列图像的马尔可夫链,收敛到类似于输入的图像。也就是说,随着过程的进行,输出中NxN模式的分布会收敛到输入中NxN模式的分布。
请参考原始仓库以获取关于将Metropolis算法应用于该问题的更详细描述。
fn main() {
// Generate a sample (this is the SimpleMaze example):
let pattern = [
true, true, true, true,
true, false, false, false,
true, false, true, false,
true, false, false, false,
];
let sample = ConvChainSample::new(&pattern, 4, 4);
// Initialize the chain using given sample and a
// - 32x32 output size
// - receptor size of 2
// - temperature of 1.0
let mut chain = ConvChain::new(&sample, 32, 2, 1.0);
// Generate the 32x32 field using 10 iterations.
let field: &[bool] = chain.process(10);
}
示例运行
以下是使用不同的受体大小和迭代次数生成的几个输出
输入 | r=3, it=10 | r=5, it=10 | r=5, it=20 | r=5, it=100 |
---|---|---|---|---|
此仓库提供了原始“慢速”和“快速”实现的端口。要运行示例,请从仓库根目录执行以下操作
$ cargo run --release --example fast
这将处理resources/samples.xml中定义的工作,并在当前目录中生成输出图像。
要运行基准测试,执行
$ cargo bench
依赖项
~305KB