朱元璋K线人生:历史可视化迭代复盘
事实记录(不可修改区)
- 作品名称:朱元璋 K线人生
- 项目时间:2026-07-20
- 预期目标:把朱元璋一生用 K 线隐喻绘制成动态、响应式 Web 应用,并保持「蛛网之上」大气、内敛、热情、简约的气质。
- 最终结果:以 1328—1398 年为时间轴,整理 27 个年龄节点;实现稳定焦段跟拍、节点特写、参数面板、桌面与手机自适应,并集成到「蛛网之上」。作者在部署前明确确认“完美”。
- 上线地址:https://tiaozhuxiansheng.com/zhuyuanzhang-kline/
- 代码提交:教程仓库
7faa76a;站点仓库38aa25c - 验证来源:Node 语法与状态计算检查、生产构建、作者逐轮视觉反馈、GitHub Actions 部署成功、线上页面与首页入口 HTTP 验证。
- 诚实边界:历史节点与指数用于叙事理解,不是金融数据;本轮未做独立史料考据,也未新增自动化视觉回归测试。
一句话结论
时间线动画是否像“人生”,关键不在 K 线画得多复杂,而在揭示进度、镜头运动、节点强调和界面占位是否各自独立、连续、可调。
迭代弧线
1. 从全景图表改成跟随叙事
第一版镜头固定,信息完整但人物缺席,用户看到的是一张图表,不是一段人生。改成一页铺满后,先让主线快速穿过画面、节点随后出现,再把镜头移动到当前节点并放大特写,叙事主体才从“曲线”转回“朱元璋”。
同时把年份细化为 27 个节点,并加入年龄。年份回答“历史发生在何时”,年龄回答“这个人在怎样的人生阶段经历它”,后者是人物叙事不可缺少的坐标。
2. 从节点缩放改成稳定焦段
逐节点改变缩放值会让横向尺度反复伸缩,形成“一跳一跳”的橡皮筋感。最终方案固定镜头焦段,只做连续横向跟随;节点的重要性改由局部尺寸、光晕、卡片与停留节奏承担。
这不是简单的缓动参数问题,而是镜头模型问题。缓动只能让跳变慢一点,不能消除空间尺度持续变化带来的不适。
3. 从覆盖层补丁改成布局预留
事件卡片和播放控制条曾遮挡年份与 K 线。继续调 z-index 只能决定谁盖住谁,不能创造空间。最终直接缩短 Canvas 的可绘制高度,为底部信息层预留稳定区域,并分别设置桌面、移动端高度。
4. 从固定成品改成可调叙事器
设置面板集中开放播放速度、特写强度、纸张背景、风险区间、节点光晕与配色;同时暴露 window.klineControls,支持读取、更新和重置设置。淡绿色风险区间默认关闭,因为它会抢占第一视觉层级,但保留为用户主动开启的解释层。
提炼的规律
1. 揭示进度与镜头状态必须分离(⚠️首次发现)
“线画到哪里”“哪个节点已出现”“镜头看向哪里”是三个状态。让激活节点的函数反向修改总进度,会造成动画被节点切换拖慢或跳跃。应由统一时间轴计算连续进度,再派生节点显隐和相机目标;用户操作只改变目标状态,不篡改时间轴。
2. 镜头语言会改变可视化的文体(⚠️首次发现)
固定全景天然偏分析,跟随特写天然偏传记。选择镜头之前,应先回答作品要让用户“比较全局”,还是“经历过程”。同一组数据,镜头模型不同,叙事文体也不同。
3. 稳定焦段优先于逐点缩放(⚠️首次发现)
连续横移保留空间尺度,用户能形成方向感;逐点变焦会重写每个节点之间的视觉距离。需要强调时,优先改变节点局部表现和停留节奏,除非章节转换确实需要一次明确的镜头切换。
4. 覆盖控件要占布局空间,不只占堆叠层(已有原则再验证)
卡片、坐标轴和控制条一旦同时出现在底部,就应在布局阶段划分安全区。z-index 是遮挡顺序,不是排版工具;透明背景也不会消除文字重叠。
5. 参数面板应开放叙事变量(⚠️首次发现)
真正有价值的参数不是装饰项,而是会改变阅读节奏和信息层级的变量:速度、镜头强度、解释层显隐、色彩语义。设置面板与公开 API 共用同一状态源,避免“界面能调、外部接口不能调”的双轨行为。
验证方法与边界
- 逻辑层:检查脚本可解析、事件数据数量、设置默认值、公开 API 与动画时长计算。
- 构建层:在
above-the-web执行完整生产构建,确认首页和独立页面进入dist。 - 观感层:依据作者逐轮截图与直接反馈修正固定镜头、拉伸、速度和遮挡问题;最终获得明确确认。
- 线上层:GitHub Actions
Build & Deploy成功;作品页和首页均返回200,作品页包含公开控制接口,首页包含目标路径。 - 未覆盖:缺少 Playwright 多视口像素回归;历史叙事指数不代表可比较的真实量化指标。
下次行动清单
- 开工时先把动画拆成
timelineProgress、cameraTarget、revealState三层状态。 - 在桌面和手机端先画出控件安全区,再决定 Canvas 可绘制范围。
- 为移动端与桌面端各保存一张基准截图,增加关键区域重叠检查。
- 对历史项目补一份节点史料来源表,区分史实、概括和叙事指数。
- 默认关闭会改变主视觉层级的解释性背景,让用户主动开启。
关联文档
- Claude预览环境不派发滚动事件_滚动类功能无法行为验证_v1 —— 动画预览环境存在 rAF 与事件派发盲区,需分层验证。
- 2026-07-16_LibreCanvas开源画布_单日十版从立项到v1.4复盘_v1 —— 同类 Canvas 项目的快速迭代、验证与发布闭环。
- 交付前实测证伪律_v1 —— 生产构建、部署任务和线上地址都要在交付前实测。
- 复盘事实先行原则 —— 本文先冻结结果、验证来源与未覆盖边界,再提炼判断。