Skip to content

函数图像扩展

GeoGebra 嵌入 beta

沿用 VitePress 提供的文件导入语法导入 .ggb 文件。

例如有目录结构:

txt
目录
├── 文章1.md
├── 文章2.md
└── images
    ├── graph.ggb
    └── 3dgraph.ggb

则可在 文章1.md 中使用如下语法:

markdown
<<< ./images/someGraph.ggb#graphing

<<< ./images/some3dGraph.ggb#3d

效果如下:

其中 # 后加工具名,如 "graphing", "geometry", "classic"

仍在测试阶段,可能不稳定。

Function-Plot Repo

仓库定义的 graph 代码块可在不依赖外部资源(例如 GeoGebra 或 Desmos 提供的 iframe)的情况下创建交互式的二维图像。graph 块中的配置使用 JSON5 格式书写。此功能使用 Function Plot 库实现,配置文件接口也与该项目相同。

你可以在 项目官网 查看例子,在 API 文档 查看完整的接口。

Function Plot GUI 提供了图形界面编辑器,并可以直接输出 JSON5 格式的配置信息。需要注意的是,Function Plot GUI 项目还在完善中,并不能覆盖所有配置。

markdown
```graph
{
  data: [{ fn: "x^2" }],
}
```
渲染结果
将官网上的实例迁移到 Markdown 中

例如,对于官网上的例子:

js
functionPlot({
  target: "#derivative-update",
  yAxis: { domain: [-1, 9] },
  data: [
    {
      fn: "x^2",
      derivative: {
        fn: "2 * x",
        updateOnMouseMove: true,
      },
    },
  ],
});

插入 Markdown 中时,只保留花括号及其包裹的部分,并删去 target 字段target 字段用于指定函数图像插入的目标 DOM 元素,在 Markdown 渲染过程中会被覆盖)

markdown
```graph
{
  yAxis: { domain: [-1, 9] },
  data: [
    {
      fn: "x^2",
      derivative: {
        fn: "2 * x",
        updateOnMouseMove: true,
      },
    },
  ],
}
```

渲染结果:

WARNING

由于 Function Plot 的渲染依赖浏览器 API,因此无法进行 SSR(服务器端渲染只能在前端渲染。因此如果配置中存在错误,无法在构建时发现。

请在确保函数图像可以正确渲染后再插入。