某天你站在笔直的铁道旁拍下两张铁轨的照片:现实里两条轨道全程等距、绝不相交;照片里它们却在地平线附近挤成一团,似乎要交汇于某处。那个"交汇处"在照片里有个对应的位置,在现实里却没有。十九世纪的几何学家做的正是把这类"只存在于视线里"的点正式收编进数学——无穷远点。本节说明:这不是审美偏好,而是修复一道算不平的账的必要手术。
无穷远点:仿射平面上每个"方向"对应一个新增的点,记作该方向的平行直线族的公共交点。全部无穷远点构成一条直线——无穷远直线。补上它们之后,平面上任意两条不同直线恰有一个交点,无一例外。
上一章末尾预告过贝祖定理的粗糙版本:m 次曲线与 n 次曲线"通常"交于 m·n 个点。用直线(一次)与直线相检验一下这笔账在仿射平面上能否成立:
漏账的规模还不止一处:抛物线 y = x² 与直线 y = 1 交于两个点;y = x² 与 y = 2 也交于两个点;但 y = x² 与 x 轴(y=0)相切,肉眼只见一个交点;而 y = x² 与 y = x²+1 完全平行,一个交点都没有。同样规模的曲线组合,交点数却在一、二、零之间跳。十九世纪的几何学家完全可以直接宣布"贝祖定理只在特殊情形成立",但他们选择了更深的修法:不是定理错了,是舞台缺了点。

修复方案要同时满足两条:其一,平行直线族必须获得交点;其二,不相交的账不能多记——原本已相交的直线组合,交点数不能膨胀。满足这两条的方案恰好是唯一的:
给每个方向恰好补一个点。
直线 y=0 与 y=1 方向相同(都水平),共享"水平方向的无穷远点";直线 x=2 与 x=3 共享"竖直方向的无穷远点";斜率为 3 的平行直线族共享"斜率 3 方向的无穷远点"。非平行直线呢?它们在仿射平面里已经相交,不需要新点——两条不同直线的方向不同,新补的点不会把它们搅在一起。手术后重新盘点:
"方向"在平面上的官方名字是斜率。把登记表写全:斜率 m 的非竖直直线族 y = mx + b(b 任意)共享一个无穷远点,2.2 节会把它记作 (1 : m : 0);竖直直线族 x = c 共享 (0 : 1 : 0)。验算一笔:y = 2x + 1 与 y = 2x + 3 平行,斜率同为 2,按表它们交于"斜率 2 方向的无穷远点" (1 : 2 : 0)——账目从 0 变 1,与"直线次数 1 × 直线次数 1 = 1"对上。再验一笔交叉的:y = x(斜率 1)与 y = 2x(斜率 2)本就交于原点,方向不同互不干扰,新点不添乱。
曲线与无穷远的交往同样可以预演。抛物线 y = x² 沿 x 轴方向越走越远、两端"爬向"斜率 0 的无穷远点 (1 : 0 : 0)?不对——细看它开口向上,两支竖直方向上天,正确归宿是竖直方向的 (0 : 1 : 0),而且左右两支在那里相会成一次"贴着"的接触(按重数算 2)。眼睛说"开口向上应该斜率零",方程说"竖直方向"——信方程,2.3 节的齐次化会给官方判决。这张小小的对账表是本章剩余内容的导航图:所有直觉争议,最后都提交齐次坐标仲裁。
还有一个隐蔽的收获:所有无穷远点自身排在一条直线上(无穷远直线),它与任何仿射直线也恰交一点——每条仿射直线都朝着自己的方向"出走"到那个点。整个平面从此没有漏账,也没有特权方向。
还剩一步要摊开:为什么全体无穷远点"排成一条直线",而不是散落一地?线索仍在方向上。平面内一个"方向"由斜率 m(或竖直)指定;但射影几何不用斜率记账,它用"过原点的直线"记账——2.2 节的齐次坐标里,每个方向对应一组比例 (X : Y : 0)。这些比例全体恰好满足一个齐次线性方程 Z = 0,而"齐次线性方程的零点集"在射影世界里的官方名字正是直线。无穷远点自动列队成一条无穷远直线,不是谁安排的,是"方向"这个概念的代数形状使然。
这条直线立刻带来一份红利:它与任何仿射直线恰交一点(该直线的方向点),与仿射平面拼合得天衣无缝;升到三维,无穷远直线升级为无穷远平面,所有平行平面在它上面相交——工程制图与计算机图形学里的"消失点""地平线",都是它的直系后代。你拍摄的铁道照片之所以能被算法理解成三维场景,背后正站着一个"把无穷远处理成普通点"的几何模型。
初学时最常见的省事方案是"补一个点让所有平行线共用"。它过不了第二条检验:若 y=0 与 y=1 交于总点 P,而 y=0 与 x=0 也要交于 P(否则 y=0 的账没平),那么 y=1、x=0、x=2……全都穿过 P,两张原本平行的账、两张原本相交的账搅成一团浆糊。逐一追究下去你会发现:**点的个数必须与方向一一对应**,少一个账没平,多一个账虚增。这个"每个方向恰好一点"的刚性,正是下一节齐次坐标要精确编码的东西——方向本身就是"过原点的直线",把 k³ 中所有过原点的直线各记作一点,得到的恰好是射影平面。
给计算机视觉背景的读者补一句行话对译:摄影测量里说的"消失点"(vanishing point),数学身份正是"该画面方向的无穷远点";"地平线"是"画面所在平面的无穷远直线"在成像平面上的投影。判断两排平行建筑在照片里是否真实平行,算法做的就是"把各组平行线的交点反推为消失点、检验它们是否共线于地平线"——本节"每个方向一个点、全体方向排成一线"的两条事实,就是这类算法的全部几何地基。你说不清无穷远点,就修不好去畸变;这大概是最贴近日常的一条研究理由。
三个易错点。其一,无穷远点不是"很远的点":它与任何有限点都没有远近关系,"距离"这个概念在射影世界里根本不存在,只有"方向"。其二,不要给无穷远点配坐标 (a, b)——仿射坐标系装不下它,必须换成 2.2 节的三坐标比例写法。其三,无穷远直线不是某条具体的仿射直线平移而来,它由全体无穷远点组成,性质与仿射直线平等。
本节在知识体系里的位置:诊断完成、手术方案有了直觉版本;2.2 节把"方向即点"写成不依赖图像的正式定义,2.3 节再把齐次化算法交到你手上。贝祖定理的干净版本要在第 4 章才结算,但漏账必须先在这里堵死。