首页 > 技术文章 > 一张神奇的图

guogangj 2013-07-28 00:31 原文

其实我早就看过这张图了,当时没看明白,但又没具体想为什么,总觉得其中被作者搞过鬼,今天又看到,于是无聊了一把,分析分析。先看图:

经过这么一个位置挪移,12个人就变成了13个人,而且大体上没什么破绽。

初一想,这种把戏应该很好揭穿吧,数一数有多少脚不就行了?但我马上发现其实人头更好数,好吧,就数数人头,但数来数去我开始怀疑自己的眼力或智商了——好像也没发现什么问题。

这种方法进行不下去的原因是:我没法判定A的人头是来自于B,还是来自于C,貌似两者都有,另外类似地D的人头也一样无法确定来源。

有网友这样评论:最左边人的头发是破绽,仔细看会发现,每个人在图片左右交换后高度是有大概几个像素的变化。设计的精妙之处就在于高度变化后仍然能看做完整的人,也就是说,从每个人身上切出来一片组成了第13个人。

很明显,我不会同意这个观点,如果如他所说,那13个人中哪个才是“从每个人身上切出来一片组成”的人?

总而言之,我花了很大的劲去寻找“对应关系”,但都失败了。

直到我想到了这种思维:能不能把图中的人抽象成更简单的,更容易分析的东西,我平时工作不都这样么?遇到复杂的技术问题,就单独把它抽出,简单化,再去分析,遇到bug也是一样,放到一个尽量简单的环境中去分析,解决。OK,我知道怎么做了,下图中,我把人抽象成了柱子(我的绘图水平很一般:P)。

问题基本上就很清晰了,从我画的“柱子图”中清晰看到,根本就不存在被零件拼出来第十三根柱子,基本上,所有的原始柱子都发生了改变,要寻找对应关系是不可能的了,也许你要说红色的那根柱子变化很小,应该可以对得上,我说对不上,变化大小对电脑而言都是变化,我们人眼认为它没变,因为变化太小,但其实已经变了,变了,也就对应不上了。我认为这是一个很巧妙的拼接,我很佩服这个图片的作者。

解决问题的重要方法就是抽象,化繁为简。

推荐阅读