Euclidea、几何画板与GeoGebra

纪念Euclidea被安装在我的手机上一周年,叹于它的颜值,同时吐槽GeoGebra的界面对新人太不友好以至于我从未认真使用过它,特水此文。

Euclidea是Horis International Limited出品的几何探索(做数学题)类游戏,有iOS、Android、Web版。基于《几何原本》中的尺规作图法,号称“最大的交互式几何谜题集”(the largest collection of interactive geometric puzzles),在Euclidea中也确实能找到不少别处找不来的题,缺点就是没有一道会做的

从Euclidea还衍生出了Euclidea: Sketches,不过该应用目前仅限iOS,尚未登陆Android,也没有在线版本。官方:在做了在做了……咕咕咕,两年过去了。我没有iOS设备,姑且把Euclidea游戏本体当成Sketches来用。面对平日那并不多的绘图研究需求,体验竟然还比几何画板和GeoGebra这样专门的交互式几何软件包更好。

几何画板(The Geometer’s Sketchpad)是初中数学老师最喜欢的课件制作工具(它的中国地区那无比山寨风的代理页面上就是这样宣传的。我不是针对谁,我就是针对这个代理商,就是垃圾),但使用后会发现或许还是用它来探索几何和函数问题时更好用。只支持Windows和macOS。交互式探索原是它的亮点,但这个软件的最新版本也已是五年多前发布的了,到现在已没有那么大的特色了。

GeoGebra是开源免费、几乎全能的数学应用。支持代数计算、计算机代数系统、二维几何作图、三维几何体、平移翻转仿射反演、函数绘图积分求导、概率统计拟合回归、电子表格数据列表,在线使用、离线使用、自动更新、便携版本、作为应用安装、作为考试U盘、批量安装、本地化的界面和帮助文档、导出为Web所用格式,Windows桌面、Windows UWP、macOS、*nix(提供DEB和RPM包与便携版)、Chromebook、iOS、Android、Google Chrome、Safari、Mozilla Firefox、Microsoft Edge、Internet Explorer 11、树莓派,还有增强现实?!图形计算器的安装包只有50M?太复杂了,我玩不来……

简单

Euclidea本体作为一款游戏,没有提供诸如更换线条颜色、标注点的名称等花哨的功能,只有平面几何中最基本的元素——点、直线、圆,和寥寥数个初中就学过的尺规作图套路的快捷方式,这也帮助造就了Euclidea极简的界面。相比之下,几何画板与GeoGebra作为专业作图软件,光是一级菜单项目大概就已超过Euclidea界面上的按钮个数了。

这在比较中并不公平,因为Euclidea的可用功能非常少。Euclidea: Sketches拥有稍多的功能,可以标注点的字母名,更换线条颜色,用橡皮擦抹去图形(Euclidea游戏本体只提供撤销和恢复),还有中点、正多边形、三角形的四心等实用功能。

可是在为了直观地研究问题快速作图的时候,有多大必要为每个点都标上字母呢?——而如果是绘制要印刷的图形,几何画板和GeoGebra也都不能轻巧地做到。

启动速度

在我不算高端的设备上,Euclidea的加载动画大约播放1~2秒后可显示主界面。几何画板作为Win32程序,在这个项目上则总能胜出,即便冷启动,启动时间仍可忽略不计。GeoGebra启动非常慢。非常慢。非常慢。不管是什么版本。我用过的Web版本和GeoGebra 5在Windows上的离线应用都是是如此。对离线应用来说,这是把Web技术用在原生开发上的通病。看起来,GeoGebra 5甚至还用上了Java。

响应速度

Euclidea原本是为iOS编写的游戏,先前受Apple平台开发优化的通行准则限制,即使移植到了Android上依旧丝般顺滑;Web版本似乎有部分重制了,但性能依旧出色。几何画板作为Win32程序,不用说,响应速度也是一流,绘图速度一般(GDI+的锅?)。GeoGebra响应慢。慢。慢。其实也没有那么慢,但面板弹出时卡顿,且拖动时总拖泥带水,让习惯了丝滑触感的用户很不舒服。因为卡顿,我总有种“这个软件会时不时动作不协调和崩溃”的错觉。

界面设计

Euclidea主要用图标表现操作,文字说明很少也确不需要,大概因此连玩法的翻译工作量都下降了。

几何画板对基本尺规作图工具采用了图标式工具栏,像角平分线这样略复杂的工具则以菜单项和状态栏中的文字说明——典型的Win32应用程序作风。

因为几何作图工作本身的特性,虽然几何画板是Win32程序,选择和构造对象的方式却不那么符合平台规范,但是总体操作也还顺手。

GeoGebra的图标一眼望去看不懂。

GeoGebra毕竟是开源软件。有的图标概念通用,就借用了Material Design中的图标,和整体套用的质感设计风格搭配得很好,但是更多的抽象几何操作哪个图标库都不会提供。虽然我不知道它的工具图标是谁画的,但是很像是由程序员审美做出来的样子。风格倒也惊人地统一,有些图标更显示本质,可惜还有一些没有,并且几乎所有图标中点的表现形式都实在太大了。明明红色的元素作为构造目标应该最为突出,圆形的蓝点总是被最先注意到。

(上图中的行,从上到下:Euclidea、GeoGebra、几何画板;列,从左到右:移动、点、直线、圆(圆心和圆上一点)、垂直平分线、垂线、角平分线、平行线、圆(半径和圆心)、交点、多边形)

引擎功能

Euclidea的一个重要组件是通关判定。即使把点分毫不差地拖动到目标的正确位置,只要不能证明普遍性就是错解。用不同的工具构造出能被证明是相同的直线的话,也不计入总步数。三条直线是交于一点还是交于三点也不会搞错。(如果视图放得很大,界面绘制上会有误差,但内部判定是精确的。)

外界似乎也猜不透这神奇的游戏用了什么技术。无论是打破世界纪录的步骤,还是挑战冗长的几十步后(这样的长操作对常规的数值计算方法已足以造成很大误差),Euclidea都能给出正确的判定。据说HIL开发了一套几何证明语言,那在游戏内实现了个定理证明系统也不是没有可能……

几何画板没有判定。构造的交点永远是两条曲线的相交点,该点在不在第三条曲线上,这种问题几何画板一概不管。可以构造两个点,它们的位置一直相同。切点有时不能构造,比如与坐标轴相切的抛物线和轴的切点——几何画板不认为抛物线y = x2与横轴有交点,尽管它与纵轴的交点就是(0, 0)。

另外,几何画板继承了Windoge应用的生成式构造思路,对象一旦生成,便很难重新定义。例如,构造了直线l上的线段AB的中垂线,则在不重新构造中垂线的情况下,我没有找到能仅让点A脱离直线l而不影响图形其他部分的功能。

GeoGebra什么都会做的。

用户应用

Euclidea和Euclidea: Sketches完全没有提供除了尺规作图外的更多图形应用,连个抛物线都画不了。

几何画板有基本的坐标系、函数作图、参数方程作图等实用功能,甚至还支持函数的符号求导(当然,仅限内置函数的组合;即便如此,对一个几何绘图软件来说也已足够强大)并能化简该符号结果和作为公式显示(买画图软件送CAS和MathType),但是不直接支持圆锥曲线,也不支持隐函数作图。

从GeoGebra主程序的图标“过五点的圆锥曲线”就能看出GeoGebra对圆锥曲线和解析/计算几何有良好的支持。不仅如此,代数和统计也样样都不赖——不过这些就和交互式几何没有太大关系了。

帮助文档

我没有读过几何画板和GeoGebra的帮助文档。图形界面程序的基本素养是用户不需要像使用命令行或操作布满按钮的复杂机器那样先阅读一大本使用说明书也能用探索的方式迅速了解使用方法。如果一个图形界面程序还有什么即便是已了解基础概念的人也不能一眼明白的功能,或是埋藏于表面兼容平台上共通的操作方法之下的关键修饰键,最好的解决办法是令简短的提示信息自动显示,而不是叫用户在文字排版和渲染效果总不尽如人意的屏幕上花半天时间仔细阅读使用说明书。

Euclidea是游戏,新手教学什么的最棒了。几何画板是地道的图形界面程序,提示也充分——虽然把说明写成半句前省略半句后加点的样子放在状态栏里的做法显然给本地化造成了不小的障碍——只是如果没有帮助,摸索要费些时间。

可在开源世界的GeoGebra跟着那边的外壳界面一道,即使钉在棺材里了,也要在墓里,用这腐朽的声带喊出:“命令行万岁!”

总结

Euclidea好看,几何画板好用,GeoGebra好玩。

如果把应用程序作为工艺品来看的话,漂亮的外观、丰富的能力、稳定的演出(performance)同样是要兼备才好。可是制作应用是复杂的,众妙毕备的软件,大抵是不存在的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注