航点 05 可视化 天气 · 暮色

如何画出一个低处

一堂可以动手的等高线课:山谷没法直接画出来——你只能描出它周围的地面。

地图有一件奇怪的事:你没法通过”画洼地”来画出一个洼地。那里什么都没有可以画的——只有地面缺席之处的空气。你画的,其实是它周围的地面,一条线一条线地,画在它开始下陷的那些高度上。

我觉得这件事莫名让人安心,因为低落的情绪也是这样。正面描述它非常难。你问一个人”那到底是什么”,他会说不出来。但如果你问它的边缘——他不再做哪些事了,哪些小东西变重了,一天里哪个钟点最难熬——一个形状就慢慢出现了。

方法

电脑画等高线,用的是一个名字很朴素的算法:行进方块(marching squares)。它是这样走的:

  1. 在网格上给地面采样。 每一个格点,都有一个高度。
  2. 选一个高度——比如 400 米。
  3. 给每个格点做记号:它比 400 米高,还是低?
  4. 一格一格地走过去。 每个小方格有四个角。如果四个角意见一致——都高,或者都低——就没有线穿过它。如果它们意见不一,线就一定会从它们之间的某处穿过去。这种穿法一共只有十六种,电脑只要查表,找到对的那一种。
  5. 把碎片连起来。 线从方格哪里进、哪里出,由每个角比 400 米高出或低出多少来估算。把所有的小碎片缝在一起,就是一条等高线。

在下面试一试。实心的点比所选高度高,空心的点比它低,发光的那条线,恰好从它们之间穿过。在图上按住并拖动,可以往下挖——你会看见那条线绕着你挖出来的坑弯过去。

高度 0 米 被穿过的格子 0 最低处 0 米

拖动滑块改变高度;在图上按住并拖动,可以挖出一个低处。

这个演示告诉我们的三件事

低处,是由它周围的东西定义的。 挖一个坑,看看:琥珀色的线不会走进坑里,它绕着坑沿走。正是因为有托住它的地面,这个坑才变得看得见。

线不会无缘无故地断掉。 把高度往上拉、往下拉。每一条线,要么首尾相接成一个圈,要么一直走出图纸的边缘。等高线不可能在一片空地中间突然结束——从数学上说,它不被允许这样。另一边,永远还有地面。

把线压得足够低,洼地就会缩成一个点。 把高度往下拉,朝着你挖的那个坑的坑底拉。那一圈越收越紧,越收越紧,然后消失了——你已经低于最低点,没有东西可以再被围住了。每一张地图上的每一个洼地,都有底。这就是洼地的定义。

为什么我喜欢知道这些

这些都不会让低处变得不那么低。但知道它的形状可以被描出来——它有边,有底,有线从它那里通往别的地面——会让人稍微站得稳一点。在起雾的日子里,这是一样可以抓住的东西:它有边界,哪怕我从里面看不见。