全部工具
图形计算

在线数学脚本计算器:含循环、函数与绘图的安全语言

一款内置的数学与绘图脚本实验室。使用安全的解释型语言(不使用 eval)编写程序,支持变量、数组、函数、循环与条件语句,内置数学函数、数值导数与积分函数,以及 2D/3D 绘图命令。按 Ctrl/Cmd+Enter 运行,可加载示例脚本,同时查看控制台输出与 SVG/WebGL 图形——全部在浏览器本地执行。

Ctrl/Cmd + Enter 运行 · Tab 缩进
SCRIPTING · GUIDE

脚本计算器使用说明

一种安全的沙盒语言,支持变量、函数、循环和绘图

脚本计算器在沙盒解释器中运行一种小型内置语言。你可以定义变量和函数、使用 if/else 分支、for 和 while 循环、数组(配合 range、push 和 len)、调用数学内置函数,并生成二维或三维图形。解释器被解析为 AST 并完全在浏览器中执行——它从不使用 eval 或 new Function,并且步数限制可防止无限循环。

01 编写脚本

语句自上而下运行。用 = 赋值变量,用 fn name(args) { ... } 定义函数,用 if/else 分支。循环使用 for (i = 0; i < n; i = i + 1) { ... } 和 while (cond) { ... }。数组用 [1, 2, 3] 或 range(n) 创建,push/len 按预期工作。print(...) 写入输出控制台。

可用的数学函数包括 sin、cos、tan、asin、acos、atan、log、exp、sqrt、abs、min、max、pow、floor、ceil 和 round,以及常量 pi。绘图命令在控制台旁生成图形:plot(f, xmin, xmax) 绘制二维曲线;plot3d(f, xmin, xmax, ymin, ymax) 绘制曲面;param3d(x, y, z, tmin, tmax) 绘制参数曲线;scatter3d(xs, ys, zs) 绘制点云。还提供 derivative(f, x) 和 integrate(f, a, b)。

使用示例按钮加载可运行的样例,然后编辑它们。按 Ctrl/Cmd+Enter(或 Run)执行。按 Tab 时编辑器会插入两个空格以保持缩进整齐。如果脚本包含错误,控制台会显示行号和原因;如果运行时间过长,步数限制会安全地将其中止。

  • 变量:x = 3,name = value(无需 var/let 关键字)
  • 函数:fn add(a, b) { return a + b }
  • 条件:if (x > 0) { ... } else { ... }
  • 循环:for 和 while,循环体用大括号括起
  • 数组:[1, 2, 3]、range(n)、push(arr, v)、len(arr)
  • 输出:print(...);图形渲染在控制台上方
按键与按钮

运行

  • ▶ Run执行脚本。快捷键 Ctrl/Cmd+Enter。
  • Ctrl/Cmd+Enter运行的键盘快捷键。
  • Tab插入两个空格用于缩进。

示例加载器

  • 2D加载使用 plot(...) 的二维绘图示例。
  • 3D加载使用 plot3d(...) 的三维曲面示例。
  • Parametric加载 param3d(...) 曲线示例。
  • Scatter加载 scatter3d(...) 点云示例。

编辑器与输出

  • code area在此编写脚本;行号显示在沟槽中。
  • console panel显示 print(...) 输出、错误信息或“No output”。
  • plot area当脚本调用绘图命令时渲染二维/三维图形。

内置命令

  • plot(f, a, b)在 [a, b] 上绘制 f(x) 的二维曲线。
  • plot3d(f, a, b, c, d)在矩形区域上绘制曲面 z = f(x, y)。
  • param3d(x, y, z, a, b)在 t ∈ [a, b] 上绘制参数曲线。
  • scatter3d(xs, ys, zs)从三个数组绘制三维点云。
  • derivative(f, x)f 在 x 处的数值导数。
  • integrate(f, a, b)在 [a, b] 上的数值定积分。
温馨提示
  • 务必用大括号 { } 包裹函数体和循环体。
  • 调试时使用 print(...) 检查值。
  • 步数限制可保护页面免受无限循环影响——如果被中止,请简化繁重的循环。
  • 从示例开始并修改它,以快速学习语法。
  • 沙盒内无法访问 DOM、网络或 eval——脚本无法离开浏览器。

免费在线脚本计算器,内置安全编程语言。可定义变量与函数,使用 if/else、for、while 循环、数组以及 range/len/push,调用 sin、cos、log、sqrt、abs、min、max、pow 等数学内建函数,并用 plot、plot3d、param3d、scatter3d 生成图形。解释器运行在沙箱中——绝不使用 eval 或 new Function——并设有步数上限。按 Ctrl/Cmd+Enter 运行。

编写脚本

语句自上而下执行。用 = 赋值,用 fn name(args) { ... } 定义函数,用 if/else 分支。循环用 for (i = 0; i < n; i = i + 1) { ... } 和 while (cond) { ... }。数组用 [1, 2, 3] 或 range(n) 创建,支持 push 与 len。print(...) 将内容写入输出控制台。

数学与绘图内建函数

可用函数包括 sin、cos、tan、asin、acos、atan、log、exp、sqrt、abs、min、max、pow、floor、ceil、round,以及常数 pi。绘图命令:plot(f, xmin, xmax) 画 2D;plot3d(f, xmin, xmax, ymin, ymax) 画曲面;param3d(x, y, z, tmin, tmax) 画曲线;scatter3d(xs, ys, zs) 画点云。还提供 derivative(f, x) 与 integrate(f, a, b)。

安全与限制

该语言被解析为 AST 并在沙箱中解释执行,无法访问 DOM、网络或 eval。执行步数上限可防止无限循环,内存也有界。按 Ctrl/Cmd+Enter(或运行按钮)执行;错误会在控制台显示行号与原因。所有脚本保存在你的浏览器中。

常见问题

Q脚本语言是 JavaScript 吗?
A

不是。它是自研的小型语言,被解析为 AST 并在沙箱中解释执行,无法访问 DOM、网络或 eval。

Q如何运行脚本?
A

按 Ctrl/Cmd+Enter 或点运行按钮。print(...) 的输出与所有图形会出现在结果区。

Q写了死循环会怎样?
A

解释器设有最大执行步数,会终止脚本并报错,因此页面不会卡死。

Q可以在脚本里绘图吗?
A

可以——使用 plot、plot3d、param3d、scatter3d;图形与控制台输出一同渲染。还提供 derivative(f,x) 与 integrate(f,a,b)。