MathFunction Pro 是一款专为 Blender 4.x / 5.x 设计的现代化数学函数可视化与几何生成插件。它将任意复杂的代数、三角、微积分函数表达式与参数方程,一键转换为极具表现力的 3D 实体管道曲线、正规化 UV 网格曲面、程序化着色材质、离散点云与闭合积分实体。
-
全新快捷创建与菜单深度集成:
- 顶部菜单集成:支持在视口
Shift + A快捷菜单中直接选择Add -> Mesh -> 数学函数网格与Add -> Curve -> 数学函数曲线; - 侧边栏自适应引导:即便场景完全为空,打开侧边栏
MathFunc面板也会展示友好的创建向导与预设一键生成按钮。
- 顶部菜单集成:支持在视口
-
20+ 款经典数学公式预设库 (Preset Library):
- 内置包括高斯钟形分布、阻尼振荡、悬链线、Sigmoid、双曲抛物面(马鞍面)、猴鞍面、墨西哥草帽 (Sombrero)、同心涟漪、3D 螺旋线、三叶空间纽结、环面 (Torus)、莫比乌斯环 (Mobius Strip)、球面、悬链面、二重积分实体等,参数开箱即用。
-
自然数学书写与安全数学引擎 (Safe Math):
-
隐式乘法支持:自由书写
2x、3sin(x)、2(x+1)、(x+1)(x-1)等自然数学表达式; -
全面运算符兼容:原生支持
^与 Python 风格的**乘方; -
数学异常优雅防护:除零(如
$1/x$ 在$x=0$ )、负数对数与开方自动安全容错,再也不会因数学域奇异点崩溃; -
分段与阶跃函数:支持三元条件式
cond ? a : b以及if(cond, a, b)、clamp、smoothstep、sinc等常用高级函数。
-
隐式乘法支持:自由书写
-
曲线 3D 实体管道化:
- 摆脱原版发丝细线的简陋外观,面板直接支持调节 管道倒角粗细 (Bevel Depth)、平滑细分、端盖封闭 (Fill Caps) 与带状挤出。
-
网格 UV 展开与物理厚度:
- 曲面自动生成正规化二维
$(u, v) \in [0, 1]^2$ UV 贴图坐标 (UVMap),无缝适配任何贴图材质; - 一键开启 实体化厚度 (Solidify),赋予零厚度数学曲面真实的物理立体质感。
- 曲面自动生成正规化二维
-
科学可视化自适应渐变材质:
- 一键生成并绑定自适应高度与法线渐变的高质感材质;
- 内置 Turbo(高对比科学彩虹)、Viridis(学术经典)、Plasma(等离子高能)、Cool-Warm(冷暖温差)、Cyberpunk(赛博霓虹发光)、Frosted Glass(半透明磨砂水晶玻璃)、Brushed Gold(金属流金)等丰富配色。
-
实时时间演化 (t) 动画:
- 表达式支持时间变量
t(如波动方程$\sin(r - t)$ ),无需手动打关键帧,播放时间轴(空格键)即可实时流体扩散与波动演化!
- 表达式支持时间变量
-
微积分分析与 3D 浮动标签:
- 实时计算并展示 1D 曲线数值定积分、曲线弧长、极值区间,以及 2D 曲面二重积分数值;
- 支持一键在模型上方生成包含公式与数值的 3D 浮动文字标签。
- 从本仓库根目录获取
math_function_addon.py。 - 打开 Blender,进入顶部菜单:
编辑 (Edit) → 偏好设置 (Preferences) → 插件 (Add-ons)。 - 点击右上角下拉菜单选择 从磁盘安装... (Install from Disk...),选中
math_function_addon.py。 - 在列表中勾选启用 MathFunction Pro - 数学函数几何生成器。
- 在 3D 视口右侧侧边栏(快捷键
N)即可找到MathFunc专属面板,或按下Shift + A在添加菜单中创建。
| 类型 | 符号 | 说明 |
|---|---|---|
| 自变量 | x y z u v |
曲线/曲面定义域自变量 |
| 时间变量 | t |
随时间轴自动推进:t = 当前帧 × time_scale |
| 常量 | pi e tau phi |
圆周率、自然常数、黄金分割比等 |
| 可调参数 | a b c d |
面板滑块参数(可一键插入动画关键帧) |
- 四则运算:
+,-,*,/ - 乘方:
^或**(例如x^2,x**3) - 隐式乘法:
2x,3(x+1),2sin(x) - 条件与分段:
x > 0 ? sin(x) : -x或if(x >= 0, a, b) - 比较运算符:
<,>,<=,>=,==,!=
sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, sqrt, cbrt, exp, ln, log, log10, log2, abs, sign, sinc, floor, ceil, round, trunc, sec, csc, cot, clamp, step, smoothstep, lerp, mod, gamma, erf, degrees, radians, pow, atan2, hypot, min, max。
| 类别 | 预设名称 | 表达式示例 |
|---|---|---|
| 1D 曲线 | 正弦波 (Sine) | sin(x) |
| 阻尼振荡 (Damped) | exp(-a*x) * sin(b*x) |
|
| 高斯钟形曲线 (Gaussian) | exp(-(x^2) / (2 * a^2)) |
|
| 悬链线 (Catenary) | a * cosh(x / a) - a |
|
| Sigmoid 激活函数 | 1 / (1 + exp(-a * x)) |
|
| Sinc 脉冲函数 | sinc(a * x) |
|
| 2D 曲面 | 双曲抛物面 / 马鞍面 | (x^2 - y^2) / a |
| 猴鞍面 (Monkey Saddle) | (x^3 - 3*x*y^2) / a |
|
| 墨西哥草帽 (Sombrero) | sin(sqrt(x^2 + y^2) * a) / (sqrt(x^2 + y^2) + 0.001) |
|
| 动态同心涟漪 (Ripple) | sin(sqrt(x^2 + y^2) * a - t) * exp(-0.15 * sqrt(x^2 + y^2)) |
|
| 蛋盒面 (Egg Carton) | sin(x) * cos(y) |
|
| 双峰高斯曲面 (Twin Peaks) | exp(-((x-1)^2 + y^2)) + exp(-((x+1)^2 + y^2)) |
|
| 3D 参数曲线 | 3D 螺旋线 (Helix) | a*cos(t); a*sin(t); b*t |
| 圆锥螺旋线 | 0.1*t*cos(t); 0.1*t*sin(t); 0.1*t |
|
| 三叶空间纽结 (Trefoil Knot) | sin(t) + 2*sin(2*t); cos(t) - 2*cos(2*t); -sin(3*t) |
|
| 利萨如图形 (Lissajous 3D) | sin(3*t); sin(4*t); cos(5*t) |
|
| 3D 参数曲面 | 环面 / 甜甜圈 (Torus) | (a + cos(v))*cos(u); (a + cos(v))*sin(u); sin(v) |
| 莫比乌斯环 (Mobius Strip) | (1 + (v/2)*cos(u/2))*cos(u); (1 + (v/2)*cos(u/2))*sin(u); (v/2)*sin(u/2) |
|
| 球坐标球面 (Sphere) | a*sin(u)*cos(v); a*sin(u)*sin(v); a*cos(u) |
|
| 螺旋极小曲面 (Helicoid) | v*cos(u); v*sin(u); 0.4*u |
|
| 悬链极小曲面 (Catenoid) | cosh(v)*cos(u); cosh(v)*sin(u); v |
|
| 体积与积分 | 二重积分体积体 | sin(x)*sin(y) |
在 Blender 内置的文本编辑器中载入并运行 examples/demo_showcase.py,即可一键生成包含多种曲面、管道纽结、发光材质、二重积分与全景相机的完整舞台演示!
MIT License © 2026 Sokuza & Antigravity
