其他
draw batman logo
老早老早之前看到batman logo方程,我就试着用ggplot2来画。当时写了一篇博客文:https://guangchuangyu.github.io/2011/08/the-batman-equation/
在HKU有个teaching的课,这课是强制PhD都要上的,上完课可以拿张证书,据说回到大陆可以当教师证用,不知真假。
Anyway,课上会有两次presentation,一次5分钟,一次10分钟。5分钟那次我就去present怎么画batman logo,轻松有趣即视感有没有!
首先有这么个方程,它可以画出batman:
6个方程的乘积,拆分开来如下,方程的解就是这6个子方程中任意一个为0。每个子方程都是一个线条的片段,我将用不同颜色来展示。
做为好色之徒,我们首先来6个颜色:
定义方程1,取值范围通过开方要求正数这一限制来获得。
它画出来是这样子的:
再来第二段方程:
它画出来下面的裙摆:
再来第三个方程:
以此类推,再写就有点罗嗦了,一段段加上去,最后画出来是这样子的。
最后来一段稍长点的代码,上面的logo,其实是画一堆点,那么我们可以对点进行随机采样,大小、颜色和透明度都随机。然后再给加个背景,背景点少一些,点大一些,透明度也小一些,这些也是随机的。这样我们可以看到一些点组成batman logo,在背景点中凸显出来。
就像这样,因为是随机的,所以每次跑这个代码,出来的图还会微有不同。这分分钟是要测色盲的节奏啊。
当时课上讲的slides,我是放上网的,点击阅读原文,电梯直达。