feat(phase2): 完成第二阶段评测、函数图与多格式导出 #44
@@ -0,0 +1,138 @@
|
|||||||
|
# function-plot 功能演示
|
||||||
|
|
||||||
|
这份笔记展示函数图像的写法、编辑刷新、坐标设置和错误反馈。在 NotesAgent 中打开后,切换到「写作」查看图像;「源码」模式可查看和修改下面的代码块。
|
||||||
|
|
||||||
|
## 1. 从一条抛物线开始
|
||||||
|
|
||||||
|
`domain` 设置横轴范围,`range` 设置纵轴显示范围。`xlabel` 和 `ylabel` 设置坐标轴标签。
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -4, 4
|
||||||
|
range: -2, 18
|
||||||
|
xlabel: 横坐标 x
|
||||||
|
ylabel: 函数值 y
|
||||||
|
grid: true
|
||||||
|
y = x^2
|
||||||
|
```
|
||||||
|
|
||||||
|
试着将 `y = x^2` 改为 `y = (x-1)^2 + 2`,观察顶点从 `(0, 0)` 移到 `(1, 2)`。修改后切回写作模式即可查看结果。
|
||||||
|
|
||||||
|
## 2. 多函数同图
|
||||||
|
|
||||||
|
一个代码块内每行写一个函数,曲线按顺序分配颜色,并显示对应图例。三角函数的输入单位是弧度。
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -6.2832, 6.2832
|
||||||
|
range: -2.2, 2.2
|
||||||
|
xlabel: x / 弧度
|
||||||
|
ylabel: y
|
||||||
|
y = sin(x)
|
||||||
|
y = cos(x)
|
||||||
|
y = 2sin(x)
|
||||||
|
```
|
||||||
|
|
||||||
|
将第三条函数改为 `y = sin(2x)`,比较振幅变化和周期变化。
|
||||||
|
|
||||||
|
## 3. 隐式乘法与交点
|
||||||
|
|
||||||
|
支持 `2x`、`2(x+1)`、`(x+1)(x-1)` 等写法。乘号也可以显式写成 `*`,幂可以使用 `^`。
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -3, 4
|
||||||
|
range: -5, 12
|
||||||
|
xlabel: x
|
||||||
|
ylabel: y
|
||||||
|
y = (x+1)(x-1)
|
||||||
|
y = 2x + 1
|
||||||
|
```
|
||||||
|
|
||||||
|
两条曲线的交点满足 `x^2 - 1 = 2x + 1`,横坐标约为 `-0.732` 和 `2.732`。
|
||||||
|
|
||||||
|
## 4. 指数、对数与参考直线
|
||||||
|
|
||||||
|
支持常量 `e`、`pi`,以及 `exp`、`ln`、`log10` 等函数。这里把横轴限定在正数范围,保证对数有定义。
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: 0.1, 3
|
||||||
|
range: -3, 8
|
||||||
|
xlabel: x
|
||||||
|
ylabel: y
|
||||||
|
y = exp(x)
|
||||||
|
y = ln(x)
|
||||||
|
y = x
|
||||||
|
```
|
||||||
|
|
||||||
|
超出纵轴显示范围的曲线会被裁切。把 `range` 改为 `-3, 22`,可以查看更完整的指数曲线。
|
||||||
|
|
||||||
|
## 5. 绝对值与平方根
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -4, 4
|
||||||
|
range: -0.5, 4.5
|
||||||
|
xlabel: x
|
||||||
|
ylabel: y
|
||||||
|
y = abs(x)
|
||||||
|
y = sqrt(abs(x))
|
||||||
|
```
|
||||||
|
|
||||||
|
这里用 `sqrt(abs(x))`,所以负半轴也有定义;它与 `sqrt(x)` 的定义域不同。
|
||||||
|
|
||||||
|
## 6. 间断点与显示范围
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -5, 5
|
||||||
|
range: -5, 5
|
||||||
|
xlabel: x
|
||||||
|
ylabel: y
|
||||||
|
y = 1/x
|
||||||
|
```
|
||||||
|
|
||||||
|
`x = 0` 处无定义,图像应分成左右两支,而不是跨过间断点连线。可缩放或打开大图查看原点附近;曲线是有限采样的可视化,不代替数学定义。
|
||||||
|
|
||||||
|
## 7. 关闭网格
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -6, 6
|
||||||
|
range: -0.2, 1.2
|
||||||
|
xlabel: x
|
||||||
|
ylabel: y
|
||||||
|
grid: false
|
||||||
|
y = exp(-x^2/2)
|
||||||
|
```
|
||||||
|
|
||||||
|
将 `grid: false` 改为 `grid: true`,比较有无网格的效果。
|
||||||
|
|
||||||
|
## 8. 错误反馈演示(故意写错)
|
||||||
|
|
||||||
|
下面的 `sinn` 不是支持的函数名,预期显示错误诊断,不生成曲线。这是本节的演示内容。把它改为 `sin` 即可恢复图像;若希望导出一份没有错误警告的文档,请先修正这一行。
|
||||||
|
|
||||||
|
```function-plot
|
||||||
|
domain: -3.14, 3.14
|
||||||
|
y = sinn(x)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 交互与导出检查
|
||||||
|
|
||||||
|
- 将鼠标移到图表区域,试用缩小、放大、重置和大图查看;只读预览也可切换源码。
|
||||||
|
- 在窄窗口中横向滚动函数图,检查坐标刻度和右侧图例。
|
||||||
|
- 依次切换 `light`、`dark`、`sepia`、`paper-moments`、`ocean-blue`、`midnight-purple`;社区主题需先安装并启用。检查背景、网格、文字和曲线的对比度。
|
||||||
|
- 修改第一节函数后不保存,点击编辑器顶部「导出」,分别选择 HTML、PDF、DOCX,验证文件采用点击时的编辑内容。
|
||||||
|
- HTML 保留支持的主题配色;PDF、DOCX 使用浅色打印样式。HTML 的函数图为 SVG,PDF 为矢量图,DOCX 为静态图片。
|
||||||
|
|
||||||
|
## 写法速查
|
||||||
|
|
||||||
|
| 项目 | 示例 |
|
||||||
|
| --- | --- |
|
||||||
|
| 代码块语言 | `function-plot` |
|
||||||
|
| 函数表达式 | `y = x^2 + 2x + 1` |
|
||||||
|
| 横轴范围 | `domain: -5, 5` |
|
||||||
|
| 纵轴范围 | `range: -2, 10`,省略时自动估计 |
|
||||||
|
| 坐标标签 | `xlabel: 时间`、`ylabel: 数值` |
|
||||||
|
| 网格开关 | `grid: true` / `grid: false` |
|
||||||
|
| 数学常量 | `pi`、`e` |
|
||||||
|
| 常用函数 | `sin`、`cos`、`tan`、`sqrt`、`abs`、`exp`、`ln`、`log10` |
|
||||||
|
| 注释 | 单独一行以 `#` 开头 |
|
||||||
|
|
||||||
|
范围端点使用数值,例如 `domain: -3.1416, 3.1416`;表达式中可以使用 `pi`。当前只绘制以 `x` 为自变量的二维函数,不支持任意脚本、参数曲线或三维曲面。
|
||||||
|
|
||||||
|
每个图块最多 16 条表达式;每份导出文档最多 16 个函数图、累计 8000 个表达式节点。本文件包含 7 个正常示例和 1 个有意保留的错误示例。
|
||||||
Reference in New Issue
Block a user