为 function-plot 构建的图形化编辑器,使用 Vue3 & Vite 构建。
Function-plot 通过一个 JS 对象传入选项。Function-plot-GUI 提供了一个易用的图形界面编辑器用来生成选项,并输出为 JSON5 格式。JSON5 与 JS 的对象字面量语法是兼容的,因此可以直接复制粘贴使用。
GeoGebra/Desmos 等工具拥有更强大的绘制能力、更多的辅助功能,并且支持导出为多样的图像格式。如果你只是需要一个教学用的绘图工具,它们是更好的选择。
GeoGebra 提供完善的部署方案与 API,但部署和集成到 Web 服务中相当复杂。Desmos 不是开源的,这意味着你无法自行部署,如果要将图像嵌入你的网页,只能用他们提供的 iframe。依赖外部服务会带来更多的维护成本和不可靠性。因此,使用 function-plot-GUI 编辑、使用 function-plot 库绘制是一个不错的选择。并且配置文件可以以 JSON/JSON5/YAML 等纯文本格式书写,甚至还能通过定义一些私有语法直接放在 Markdown 文件中渲染。文档仓库 LinhoNotes 便采用此路线。
Function-plot-GUI 支持通过 base64 编码的 URL 参数传入数据。
例如,对于:
functionPlot({
target: "example",
data: [
{
fn: "x^2-1",
},
],
});将选项转换为 JSON 或 JSON5,忽略 target 字段:
{"data":[{"fn":"x^2-1"}]}然后使用 base64 编码(结尾的 = 省略):
eyJkYXRhIjpbeyJmbiI6InheMi0xIn1dfQ然后在 hash 部分插入:
https://plot.linho.cc/#code=eyJkYXRhIjpbeyJmbiI6InheMi0xIn1dfQ兼容旧版本:作为
code参数传入:https://plot.linho.cc/?code=eyJkYXRhIjpbeyJmbiI6InheMi0xIn1dfQ
打开的网页即可编辑此选项并预览图像。