查看原文
其他

draw batman logo

2016-12-23 Y叔 biobabble

老早老早之前看到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,我是放上网的,点击阅读原文,电梯直达。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存