前言¶
在 DSH 插件开发中,处理复杂的数学可视化通常需要引入重型渲染库。xby-mathematical-visualization 是一个基于 JSXGraph 的 MCP 协议服务器,旨在为智能体提供现成的数学绘图能力。它提供了 13 种工具,覆盖了从基础函数绘图到向量场分析的需求,适用于教育数学、工程和科学应用。
核心功能¶
该插件提供以下 6 个核心功能:
- set_xby_apikey:在聊天中设置 API 密钥。该密钥会自动持久化,重启 DSH 进程后依然有效。
- generate_function_graph:函数绘图工具。支持渲染单个或多个函数,可配置颜色、标签、定义域,并包含切线、导数轨迹和积分带等功能。
- generate_parametric_curve:参数曲线工具。用于绘制由 x(t) 和 y(t) 定义的曲线,如圆、摆线、利萨茹图形或描述参数化运动的路径。
- generate_geometry_diagram:生成交互式几何图。支持创建点、线、圆、多边形、角度和向量,适用于可视化几何概念、定理和构造(如三角形、垂线、角平分线)。
- generate_vector_field:生成向量场可视化。在 2D 平面上显示箭头,展示方向和大小,支持流线、奇点以及颜色编码的幅度,常用于可视化梯度场、流场或电磁场。
- generate_linear_system:线性系统工具。用于绘制线性方程和不等式,自动标记交点,并可以对不等式区域进行着色,或标记目标函数的最优解。
关键类型要求¶
在调用上述功能时,必须严格遵守类型要求,否则会导致渲染失败:
- 数字类型:
points[].x、points[].y、domain[]、integralBounds[]、tMin、tMax、startX、startY、fieldFunction.dx、fieldFunction.dy必须是数字(例如3.14159),不能使用字符串。 - 字符串类型:
lines[].point1、lines[].point2、polygons[].vertices、angles[].point1、angles[].vertex、angles[].point2必须是字符串(例如"A"),不能是坐标数组。
典型用法¶
以下是基于 generate_function_graph 和 generate_geometry_diagram 的调用示例。
1. 绘制基础函数
{
"functions": [
{ "expression": "x^2" }
]
}
2. 绘制参数曲线(单位圆)
{
"curves": [
{
"xExpression": "Math.cos(t)",
"yExpression": "Math.sin(t)",
"tMin": 0,
"tMax": 6.283185307179586
}
]
}
3. 生成带标签顶点的三角形
{
"points": [
{ "x": 0, "y": 0, "name": "A" },
{ "x": 3, "y": 0, "name": "B" },
{ "x": 1.5, "y": 2.6, "name": "C" }
],
"lines": [
{ "point1": "A", "point2": "B" },
{ "point1": "B", "point2": "C" },
{ "point1": "C", "point2": "A" }
],
"polygons": [
{ "vertices": ["A", "B", "C"], "fillOpacity": 0.2 }
]
}
4. 绘制向量场
{
"fieldFunction": {
"dx": "-y",
"dy": "x"
},
"streamlines": [
{ "startX": 0, "startY": 0 }
]
}
适用场景与注意¶
- 适用场景:该插件非常适合教育工作者、数学建模者以及需要快速将数学概念可视化的开发者。无论是绘制微积分中的切线、积分区域,还是物理中的向量场,它都能提供直观的交互式图表。
- 注意事项:由于插件以当前 DSH 进程的权限运行,请务必在安装前检查源码和许可证(MIT)。参数传递时,请严格区分数字类型(坐标值)和字符串类型(点名称),避免因类型错误导致绘图异常。
总结¶
xby-mathematical-visualization 是一个轻量级的数学可视化工具集。通过它,开发者无需在 DSH 插件中集成复杂的 JSXGraph 库,即可直接调用绘图能力。