你有没有想过一个问题:游戏里角色转身的那个动作,电脑到底是用几个数字存下来的?三个欧拉角?九个数的旋转矩阵?答案是,工业界几乎清一色用四个数,这四个数叫四元数,一种诞生于1843年、在都柏林一座桥上被数学家刻在石头上的四维数。3Blue1Brown主理人Grant Sanderson的《Visualizing quaternions (4d numbers) with stereographic projection》(可视化四元数:用球极投影看四维数),是YouTube上把这件事讲得最透的一条视频:它不满足于告诉你“四元数好用”,而是直接把四维球面压进你的三维视野里,让你亲眼看一次“旋转”本身长什么样。本文按视频的叙事顺序逐段拆解,补上它没讲的历史与工程细节,再对它的简化处做一次对账。没看过视频,你能拿到它的全部主干;看过视频,你会知道自己在哪几步被可视化的美“骗”了过去。
| 项目 | 内容 |
|---|---|
| 视频标题 | Visualizing quaternions (4d numbers) with stereographic projection(可视化四元数:用球极投影看四维数) |
| 频道 | 3Blue1Brown(主理人 Grant Sanderson) |
| 发布时间 | 2018年(据频道页面) |
| 播放量 | 近千万量级(据频道页面,精确数未经核实) |
| 观看入口 | YouTube搜索入口 |
| 配套资源 | 与工程师 Ben Eater 合作的交互式网页(eater.net/quaternions),可在浏览器里亲手拨动四维旋转 |
| 内容形式 | manim 数学动画,时长约23分钟 |
| 核心主题 | 单位四元数如何表示三维旋转,以及如何用球极投影“看见”四维球面 |
整条视频的隐含主张只有一句话:三维旋转的所有麻烦,都是因为我们试图用三维的语言去描述一个本质住在四维里的东西。它按五步展开。
视频开场没有直接讲四元数,而是先立考题:给你一个三维物体,你怎么用数字描述它的朝向?最直觉的答案是欧拉角——绕X转多少度、绕Y转多少度、绕Z转多少度,三个数,像给飞机报姿态一样自然。但这个表示有一个著名的病:万向节死锁。当第二个旋转轴把另外两个轴转到同一平面时,三个自由度瞬间塌成两个——某些朝向会变得“到不了”,某些连续运动会突然抽搐。视频用这个病做楔子:我们需要一种不会死锁的表示法。这一步的叙事选择很高明,它让后面所有的数学都不是炫技,而是治病。
在升到四维之前,视频先降到二维:复数乘法就是旋转。任何一个单位复数乘上去,平面上的点就转过一个对应的角度;连续旋转等于连续相乘,角度自动累加。这是全片最重要的一块跳板——它让你先在一个看得见的世界里接受一个反直觉的事实:“旋转”可以被编码成“一种数的乘法”。二维世界里,一个复数管一个角度;那么三维世界呢?直觉会说“那就三个数各管各的”——这正是欧拉角的老路,也是死锁的来路。1843年的哈密顿(William Rowan Hamilton)在这条路上卡了很多年,直到他放弃“三个虚数单位”的执念,发明了第四个:i、j、k,外加实部,一共四个数——i² = j² = k² = ijk = −1。视频在这里插入了那个著名的场景:1843年10月16日,都柏林皇家运河边的布鲁姆桥,哈密顿把这条公式刻在了桥石上。今天的桥上还钉着一块纪念铭牌。
四元数有四个坐标(一个实部w,三个虚部x、y、z),模长为1的四元数全体,恰好构成四维空间里的一个三维球面S³。视频的核心图形创意就在这里:四维没人能看见,但球极投影可以把四维球面“压”进三维——就像把地球仪压进平面地图。从四维球面的“北极点”向任意方向发出射线,穿过一个三维超平面,每个单位四元数就得到一个三维坐标。压完之后有个漂亮的保真性质:四维球面上的圆,投影后仍是三维空间里的圆(球极投影保圆、保角,只是不保距离)。于是,一个抽象的代数对象,变成了一个你可以在屏幕上转着看的、由无数圆环编织成的三维护空间——这正是本片标题里"stereographic projection"的全部含义。
这是全片最容易看错、也最值钱的一段。直觉会告诉你:x、y、z三个虚轴就是三条旋转轴。视频明确否掉了这个理解——在投影后的球面上,i、j、k各自对应的是一族环面流:球面上的点沿着特定的大圆“流动”,流向就是乘上一个无穷小步长的那个虚单位。你手上的三维物体绑在球面某一点上,点流到哪,物体就转到哪。旋转90度,就是让点沿环流走四分之一圈;旋转叠加,就是流的复合。这个视角一举解释了欧拉角做不到的事:任何两个旋转之间,球面上都有一条明确、连续、无死锁的路径——不存在“卡住”的奇点,因为S³上根本没有奇点。
真正拿四元数旋转一个三维向量v,用的是“三明治”:v′ = q·v·q⁻¹,左边乘一下、右边除一下。视频不推导这步代数(这是它最受争议的取舍,下文细说),但把几何图像给足了:一个方向的旋转对应球面上穿过“两极”的一族大圆。而在这幅图里你会亲眼看到一个怪事:转360度,球面上的点并没有回到原位;要转720度才回去。q和−q是球面上不同的两个点,却对应同一个三维旋转——数学上叫双倍覆盖:单位四元数球面S³,把所有三维旋转构成的空间SO(3)整整齐齐盖了两层。这不是动画的疏漏,而是宇宙的真实性质:电子的自旋正是这种行为,物理学家管这类对象叫旋量。视频用一段三维动画把这个最反直觉的事实演得清清楚楚,是全片的高光时刻。
布鲁姆桥与哈密顿。四元数的诞生有精确到日的记录:1843年10月16日,爱尔兰数学家哈密顿沿着皇家运河散步时想通了关键一步,担心忘记,当场把i² = j² = k² = ijk = −1刻在布鲁姆桥的石栏上。他把此后二十二年余生都投进了四元数代数,但这个体系在他生前始终斗不过更松散的向量分析。直到一百年后,计算机图形学把它从故纸堆里捞了出来。
阿波罗与万向节死锁。欧拉角的死锁不是游戏圈的段子,而是航天史的真事故源。阿波罗飞船的惯性测量单元只用三个框架,一旦逼近死锁姿态就触发警报,机组需要手动机动规避。阿波罗11号的迈克·柯林斯留下过一句流传至今的牢骚:“圣诞节能不能送我第四个框架?”——后来NASA的做法不是加第四个框架,而是换算法:用四元数做姿态推算。今天国际空间站和各类航天器的姿态控制软件里,四元数都是标准配置。
Shoemake与图形学的接纳。把四元数真正带进电影和游戏工业的,是Ken Shoemake 1985年在SIGGRAPH发表的论文《Animating Rotation with Quaternion Curves》。这篇论文同时贡献了slerp(球面线性插值):在S³球面上沿大圆弧插值,旋转速度天然均匀——这正是骨骼动画混合、相机轨迹、机器人路径规划里“平滑转身”的数学底座。此前用欧拉角插值,会出现中途“绕远路”和角速度忽快忽慢,用矩阵插值则又贵又丑。
3Blue1Brown的manim。这条视频本身也有技术故事:Grant Sanderson用的动画引擎manim是他自己写的开源项目,在GitHub上已有数万星,如今是全世界数学科普作者的公共基础设施。本片与硬件科普频道出身的工程师Ben Eater合作推出了配套交互网页,把视频里“只能看”的球面环流变成“能玩”的滑块——视频与交互、直觉与操作,各管一段。
站得住的部分。视频的全部数学主干——复数旋转、单位四元数构成S³、球极投影、三明治乘法、双倍覆盖——都是教科书级的标准内容,且与SO(3) ≅ RP³这一严格的拓扑事实完全一致。“双倍覆盖与电子自旋有关”的说法也是物理学界的正经类比,不是民科式发挥。作为直觉教育,这条视频几乎无可指摘。
被动画“美化”的部分。最大的取舍是:视频全程不推导三明治乘法为什么成立。你离开时拥有图像,没有工具——真要在代码里实现,还得回头补代数推导或者直接用数学库。其次是球极投影这幅图的固有代价:它保圆保角,但不保距离——球面上看起来匀速的环流,投影到三维里速度会显得忽快忽慢,视频虽提示了变形,但很多观众会忽略这一点,误以为三维画面里的间距就是四维的真实间距。第三,“i、j、k不是轴”的强调完全正确,但视频为了画面干净,没有展开参数化路径的选择(同样一个旋转,不同路径对应不同的大圆),而这恰是实际做插值时最需要的东西。
工程视角的补充账。视频没有提四元数的工程成本收益:四个浮点数对九个(旋转矩阵),复合运算十六次乘法对二十七次以上,数值漂移只需一次归一化就能修复——这是它统治运行时的真实原因。但也要说另一半:美术和策划在编辑器里手调的永远是欧拉角,因为人脑理解“绕X转30度”远比理解(w, x, y, z)容易。Unity等引擎的检视面板显示欧拉角、底层存储四元数,两边各干各的活——这个分工视频没有讲,却是实际开发中最重要的一条常识。此外不要把四元数神化:纯UI动画、二维游戏、单轴机械臂,欧拉角依然够用且更好调,四元数的红利只在任意姿态、连续插值、长序列复合的场景兑现。
第一条:编辑器里用欧拉角,运行时用四元数,插值永远用slerp。不要在运行时对欧拉角做插值——那是万向节死锁和“绕远路”的固定配方。手调参数用欧拉角,存档、网络同步、骨骼混合全部落到四元数;两姿态之间过渡用slerp,角度很小时可以用更便宜的nlerp(先线性插值再归一化),但大角度下nlerp角速度不匀,相机会有可感知的顿挫。
第二条:把单位四元数当成“球面上的点”来调试。打印(w, x, y, z)四个分量,检查它们是否落在单位球面上(平方和约等于1);不落在,说明某处忘了归一化,漂移正在累积。当你发现物体转完一圈多转了或少转了角度、翻转瞬间抽搐,先怀疑欧拉角死锁,把累计旋转改成四元数乘法,问题往往当场消失。
第三条:学一类数学,先问“它的病是什么”。这条视频示范了一种学习方法论:它不是从“四元数很酷”开始的,而是从“欧拉角会死锁”开始的。任何表示法都是一种取舍——欧拉角买来的是人类可读,付出的是奇点;矩阵买来的是通用,付出的是冗余;四元数买来的是无奇点和插值质量,付出的是不可读。以后再遇到“某技术是业界标准”的说法,先去找它治的病,你对技术的判断力就从背清单升级成了看价签。
flowchart TD
A["三维旋转怎么存"] --> B["欧拉角三数直觉"]
B --> C["万向节死锁<br/>自由度塌缩"]
C --> D["回到二维<br/>复数乘法即旋转"]
D --> E["升到四维<br/>i j k 三位虚轴"]
E --> F["单位四元数<br/>住在四维球面S3"]
F --> G["球极投影<br/>四维压进三维"]
G --> H["看见旋转<br/>球面环流不是轴"]
H --> I["三明治乘法<br/>qvq逆旋转向量"]
I --> J["转720度才还原<br/>q与负q同一旋转"]
J --> K["双倍覆盖<br/>SO3的无奇点外壳"]
K --> L["工程红利<br/>无死锁省内存<br/>slerp匀速插值"]
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
