科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图( 二 )


文章图片
?
集合论:
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
?
函数:
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
看了该研究团队给出的demo之后 , 有人称赞道 , 「这款工具可能变革科学和数学交流 。 」
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
还有人将其比作「科学图表界的LaTex」:
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
那么 , 用户要怎么操作才能实现上述效果呢?
界面和基本功能
我们首先来看Penrose的界面 。
如下图所示 , 界面顶部是该工具的基本功能和选项 。
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
左侧第一个下拉框:表示用户试图转化的数学公式所属的领域 , 上图示例显示的是「集合论」(settheory);
左侧第二个框:可供用户选择想要生成的图样式 , 上图选择的是维恩图(venn) , 用户可以点击该下拉框 , 选择自己喜欢的样式;
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
右侧「run」按钮:点击该按钮 , 等待几秒 , 即可得到左侧数学内容所对应的图 。
只选择数学领域还不够 , 用户还需要在界面左侧填充数学内容 。 这里需要注意的是界面第二行的「sub」、「sty」、「dsl」按钮 。
Penrose的语言框架包含三部分:Domainschema(dsl)、Substanceprogram(sub)和Styleprogram(sty) 。
如下图所示 , 这三部分分别表示:
dsl:数学领域中可用的对象、关系和符号;
sub:填充数学内容;
sty:从数学表述到视觉表示 。
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
用户可以逐个点击这些按钮 , 填充所需的数学内容 , 选择所需的视觉表示形式 。
高阶优化操作
说完了基本功能 , 我们再来看「优化」操作 。
右下方「resample」按钮:如果你对生成的图不满意 , 点击该按钮 , 即可重新生成图;
「autostep」按钮:实现图的自动生成 , 如果你想对图进行调整 , 只需禁用该功能即可 。
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
UI界面中的优化过程 。
Penrose背后的技术
Penrose团队设计此工具的目标是:
以用户熟悉的方式表达数学对象;
系统不局限于固定的某些领域;
对相同的数学内容进行不同的可视化展示;
视觉复杂度方面不存在内在限制;
速度快 , 支持迭代工作流;
为制图所做的努力应该是可泛化和可重用的 。
基于以上目标 , 该团队制定了以下组织原则:
通过从数学对象到视觉图标的映射来规定图;
通过解决相关的约束优化问题来合成图 。
工作流程
下图展示了Penrose的工作流程:
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图
文章图片
第一阶段:用编程语言指定数学对象和视觉表示
Penrose将数学内容与视觉表示分离开来 , 并使用language-basedspecification来提供该分离所需的抽象 。
如前所述 , Penrose为数学内容与视觉表示提供了两种不同的语言:Substance和Style 。
Substance借助精确的断言(assertion)来诠释标准的数学表述 , 参见下图示例:
科技刀|CMU开发实用工具Penrose,堪称图解界LaTeX,数学表达式一键变图


推荐阅读