Plotter制作的初衷是为了方便在移动平台上进行科学计算,所以我先制作了移动平台的 GUI,实际上Plotter的预期是全平台的。
仅凭个人喜好,Plotter的默认色调为暗黑色,键盘为亮色,目的是加强对比度。
动效是GUI的特点之一,它可能对科学计算来说没什么作用,但是看起来就是爽呀。
设计原则是在不影响阅读、操作效率的前提下制作合适自然的动效。
Plotter目前的主界面非常简单。
上方是一个储存器,储存了目前已经定义过了的变量和值的列表。
中间是一个可以缩放和移动的直角坐标系。
下方是一个输入框和Caculate按钮,以及一个上拉或者点击可以拖拽出来的键盘。
输入表达式就会立刻被计算,无须点击按钮。
点击Caculate按钮的作用是将计算结果作为历史记录,储存到ans变量中,并在上方的储存器列表中显示出来。
因为篇幅有限,我下面只简单列举几个Plotter支持的功能或者函数。
- 大部分函数都支持复数的运算。
- 支持稠密矩阵和稀疏矩阵的创建
例如阿伏伽德罗常数 $N_A$
里德伯常量 $R_{\infty}$
a = {}; # 创建一个空对象
a.f = (x,y)=>x^y;# 为对象添加一个属性,其为一个匿名二元函数
f = d(sin(x)/dx; # 对sin(x)求偏导
a.b = f; # 为对象添加一个属性b,其为对f的引用
a.b(0) # 输出结果
执行结果:Number: 1
使用 #
进行代码的注释
使用 =>
创建匿名函数
标识符(...)=...
创建一个带名字的函数
$(表达式)
使得表达式保持原样,不被计算。类似于 Mathematica 的 Hold 或者 MATLAB Mupad 里的 hold
以分号结尾的语句,计算结果不被输出。
没有分号结尾的语句,计算结果将会被输出。
Σ(1,100,f(i)=Σ(1,i,f(j)=(i+j)^2))
Π(1,2,f(i)=Σ(i,2,f(j)=i^j))
Diff(f(x)=gamma(x),10)
Integ(1,10,f(x)=x^2)
Integ(0,10,f(x)=Integ(0,x,f(y)=(x-y)^2,100),100)
输出结果
60014200
8
817116.058897227
332.9955450128241
862.8770874999964
渲染生成的LaTeX