ReliefMath++¶
ReliefMath++ 是原生 FLTK 几何与函数绘图应用。程序命令为 reliefmathpp,在 Office 分组中提供 desktop 入口,支持直接打开 .rmathpp 文档。它与编辑和排版 LaTeX 的 ReliefMath 独立。
使用¶
在“二维绘图”或“三维绘图”中选择对象工具。
在左侧填写公式、坐标和范围,按“应用属性”或
Ctrl+Enter。在右侧切换二维、三维视图;拖动平移或旋转,滚轮缩放,
Home重置。“适合”按可见对象设置视图。参数
a、b、c、d可用滑块调整,也可在右侧输入框中输入数值并按 Enter。在“计算与工具”中使用函数计算、三维函数计算、值表、几何度量、向量和拾点构造。
提供正弦/余弦/圆、波纹曲面/螺旋线、环面/向量、玫瑰线/椭圆四组示例。新对象使用可直接绘制的默认数据。属性栏按当前类型收起无关公式和坐标控件;第二个采样范围只用于二变量对象。短窗口中可滚动查看。
对象¶
类别:二维函数; 支持内容:
y=f(x)、隐式F(x,y)=0、极坐标r(t)、参数曲线x(t),y(t); 公式变量:x/y 或 t类别:二维几何; 支持内容:点、线段、向量、圆、椭圆、三角形、矩形; 公式变量:数值坐标和尺寸
类别:三维函数; 支持内容:
z=f(x,y)、参数曲面x(u,v),y(u,v),z(u,v)、空间参数曲线x(t),y(t),z(t); 公式变量:x/y、u/v 或 t类别:三维几何; 支持内容:点、线段、向量、三角形、任意朝向平面、球、长方体、沿 Z 轴的圆柱和圆锥; 公式变量:数值坐标和尺寸
所有公式还可以使用 a/b/c/d。坐标框使用英文逗号分隔,例如 0,0,3。平面输入法向量与常数,遵循 nx*x+ny*y+nz*z=d。三维使用正交软件投影,无 GPU 或联网依赖;支持面片着色和完整线框。
表达式¶
常量:
pi、tau、e,角度统一为弧度。运算:
+ - * / % ^、< <= > >= == !=、&& ||;^右结合,-2^2=-4,2^3^2=512。一元函数:
sin cos tan asin acos atan sinh cosh tanh exp ln log log10 log2 sqrt abs floor ceil round sign。多元函数:
min(a,b)、max(a,b)、pow(a,b)、atan2(y,x)、hypot(a,b)、if(条件,真值,假值)。乘法必须写
*,如2*x、a*sin(x);不接受 LaTeX、脚本、文件访问或外部命令。未定义和非有限值不参与曲线连线;曲线、曲面和隐式绘制均采用有限采样,间断检测为数值启发式。
计算和导出¶
二维显函数支持函数值、一二阶导数、定积分、端点夹根、两函数交点、区间极值搜索、弧长和切线。三维显函数支持函数值、梯度/法向量、拉普拉斯算子、切平面、矩形区域二重积分和曲面面积。切线与切平面保存计算当时的数值参数。
几何度量提供长度/周长、面积/表面积和体积;椭圆周长使用近似公式。向量工具提供点积、叉积、长度、夹角、两点距离、中点和平行四边形面积。
支持当前视图 SVG 和 PNG;二维值表支持 CSV,最多 2000 行,未定义值标为 undefined。SVG 保留文字和矢量图元;PNG 从独立 FLTK 图像表面获取,与实际绘图使用相同绘制路径。导出不允许覆盖正在编辑的文档或其别名。
存储、响应性和限制¶
.rmathpp 为 RMPP 魔数、版本 1 的小端格式,记录总长度与 CRC32。保存对象、四个参数、坐标轴/网格/线框、二维中心和范围、三维相机旋转/缩放/中心,以及活动视图。加载先完整校验,失败不替换现有文档。
复用 relieftodo/storage.h 的无异常容器及 relieftodo/file_io.cpp 的事务文件工作进程;共享保存锁负责同目录多个窗口的互斥。保存处理短写、同步、原子替换、符号链接与外部修改冲突。文件操作时禁用文档编辑,避免保存快照与界面状态不一致。
采样在 FLTK 定时器里按曲线段或网格行分批处理;修改会取消旧采样。数值计算运行在可取消的子进程,20 秒仍未返回则终止并报告未取得可靠结果。所有图形控件沿用公共 fltk_support.h 的默认 gtk+ scheme 和中文字体。
每文档最多 64 个对象;名称 128 字节,公式 1024 字节,最多 512 条表达式指令、48 层语法嵌套。
文件和导出数据最多 16 MiB;坐标绝对值不超过
1e8,采样范围不超过1e6。网格每轴 16–96,二维曲线每对象最多 1536 段;多对象时限制有效网格精度和总绘图面片。
运算采用双精度浮点。求导和积分不提供符号表达式;误差估计不是严格误差界。
求根要求连续且端点异号,不保证找到偶重根或所有零点;极值使用采样与局部细化,不构成全局最优证明。
二重积分和面积使用 24/48 两级 Simpson 网格;奇点、高频振荡、窄峰及细小结构可能超出采样能力。
三维面片按深度排序;相互穿插曲面的遮挡、线框和近距离视角存在软件投影限制。