地球上所有人站在一起会是什么样?

今天说的东西跟编程关系不算太大,但源自我编程时的一个脑洞,算是一个另类的数据可视化。

有的老读者可能知道,我之前做过蛮长时间的游戏开发,但这两年没怎么写游戏了。最近抽空试了几个游戏引擎的最新版。在玩 Unity 的时候,因为可以很方便的创建 3D 场景和人物,就突发奇想,能不能模拟出全国,甚至全世界的人站在一个场景中的样子。当然,我是 Unity 小白,并不确定可以支撑到多少人,顺便就当测测 Unity 的性能好了。

再往下看之前,各位可以自己先猜一下,如果全世界的人,按照上班高峰时公交地铁上的密度站一起,大概相当于以下哪个面积:

首先我去素材商店搞了个城市街道场景简单拼了下,作为视觉上的一个参考。又弄了几个人物,加到场景里:

看起来还不错的样子。然后加上一段代码脚本,自动生成角色:

这里有一百人,代码里让他们平均间隔 1 米。为了看起来自然点,随机调整了下位置和方向:

继续增加人数,1024 个人

一万人

这时候,我的笔记本电脑已经不太能扛得住了,于是改成了低质量模型。

然后,再让人们挤一挤,平均间隔缩小到 0.5 米,也就是平均 1 平方米能站 4 个人(比地铁高峰宽松些)。十万个人

这相当于鸟巢体育场坐满人的情况。这时候已经看不清每个人了,模型其实已被我替换成最简单的立方体。

继续,一百万人

这已经达到大城市人口标准了,相当于天安门广场站满人。而我电脑上的 Unity 似乎也已接近极限,离原定目标还差了几个数量级,看来直接模拟是没希望了。

我只好改为 计算 + 地图 的方式。单从计算角度来说,这就是一道小学数学题啊。继续按我们前面的密度,1 平方米站 4 个人,1 亿人所需的面积 = 100000000 / 4 = 2500 万平方米,相当于边长 5 千米的方阵。放在上海的话,大约这么黑压压一片,内环都站不满:

全国接近 14 亿人,需 3.5 亿平方米,即 350 平方公里,站在上海中环内还比较松:

全世界接近 76 亿人,需 1900 平方公里,大约 1/3 个上海市面积。隔壁太湖水域面积 2338.1 平方公里。全世界人都到太湖里游泳,还是挤得下的:

对应开头的问题,北京六环环内面积 2267 平方公里,跟这差不多。

换个视角,虽然地球人很多,但挤一起,也就差不多这个红圈大小:

放在微信的启动画面上,大概 1 个像素:

而人类历史上,所有出生的人口加一起,大约是 1000 多亿,约当下人口的 15 倍。照这个数量,海南岛那么大面积也够了。

关于这个问题,有一个同样算是数据可视化的视频讨论过:

最后,以我很喜欢的一张照片结束这个脑洞:

这张照片是1990年由旅行者1号从距地球64亿公里的太阳系边缘所拍摄。最右边光带中间的一个小亮点就是地球。

我们成功地拍到这张照片,细心再看,你会看见一个小点。再看看那个光点,它就在这里。那是我们的家园,我们的一切。你所爱的每一个人,你认识的每一个人,你听说过的每一个人,曾经有过的每一个人,都在它上面度过他们的一生。我们的欢乐与痛苦聚集在一起,数以千计的自以为是的宗教、意识形态和经济学说,所有的猎人与强盗、英雄与懦夫、文明的缔造者与毁灭者、国王与农夫、年轻的情侣、母亲与父亲、满怀希望的孩子、发明家和探险家、德高望重的教师、腐败的政客、超级明星、最高领袖、人类历史上的每一个圣人与罪犯,都住在这里——一粒悬浮在阳光中的微尘。

-- 卡尔·萨根

(0)

相关推荐