声明式拖拽:只说清它能变成什么,交互自己长出来
来源:declarative-dragging.github.io — 2026-11
📋 概述
UIST 2026 最佳论文提出一种反直觉的做法:不要写几何、反馈和动画,只为每个可拖元素声明「拖动它之后允许到达哪些未来状态」。系统把这些状态各自试探性地渲染成视图树,取出被拖元素在每一份渲染里的位置,再把多个可能世界合成为一次平滑、响应迅速的拖放。实现叫 Dragology,面向 Web 上的 SVG 界面,已经在树重写、辫子、贝塞尔曲线、牌堆、多项式等演示中跑通,并被作者用来做数学可交互教具与程序语言界面。
🔑 核心要点
- 模型驱动:作者只声明可达的未来状态,几何与动画由引擎从渲染结果反推出来。
- 引擎先试探性渲染每个候选状态,比较被拖元素在各份渲染中的坐标,再合成拖放行为。
- 可组合:简单的模型驱动行为能拼成复杂行为,浮起、吸附、过渡作为修饰层叠加。
- 面向 SVG 的库 Dragology 已给出树、辫子、贝塞尔、牌堆、多项式等一批演示。
- 平行表示是关键场景:拖动任一份表示,其余表示在拖动过程中就实时同步。
- 想法最早是 2023 年白板上的一张草图,两年后才因为另一个数学项目被真正实现。
💡 金句
如果让一张示意图变得可拖,能像说明它能变成什么一样简单呢?
👍 0
👎 0
← 返回 Lobsters 首页