递归图片的图片
140之内的字符能够编写出什么程序来? 在 Wolfram One-Liner 大赛获奖的 Zdenek Buk 给我们展示了一个有趣的例子 - 由递归图片组成的图片.
仔细查看下面图片就是由不同亮度相同内容小图片组合拼接而成的. 这次让我们来分析下他是怎样做到的吧!
注: 为了便于对代码解释, 我对原始获奖代码进一步做了缩减
第 1 步
第一步看下原始灰度的图片, 里边有明有暗是一幅很好用于测试的图像(此外图像里的女孩也非常迷人!)
第 2 步
第二步我们用 Darker 命令将整幅图片调暗, 指定第二个参数为 0.4 (0是不改变, 1是变为纯黑), 并且将计算后结果赋值给变量 i.
第 3 步
下面我们需要将每一个像素值乘以 9 , 然后取整数部分. 也查看中间部分的结果(从第10行到第20行, 第10列到第20列)
第 4 步
执行上面步骤的目的, 是为了用替换操作将变量 i, 也就是我们刚刚调暗的图片按相应的数值再调整亮度. 可以去除部分图片进观察
最终将这些小的图片拼接起来就是最上面的结果了. 类似由许多小图片再组成的一张海报或传单的作品, 在未来我以后也会编写出来好玩的案例给大家分享.
上面就是利用 Mathematica (Wolfram语言) 创造出来例子. 未来会陆续分析这些获奖的代码, 让我们一起体会 Wolfram 语言的神奇吧!
好了, 现在让我们在下一篇的神奇代码文章中再见. 这里感谢各位每一位看到这里的老师和朋友!
Thanks!
联系客服