Skip to content

Repository files navigation

MathFunction Pro — Blender 数学函数与几何生成插件 (v2.0)

演示效果

MathFunction Pro 是一款专为 Blender 4.x / 5.x 设计的现代化数学函数可视化与几何生成插件。它将任意复杂的代数、三角、微积分函数表达式与参数方程,一键转换为极具表现力的 3D 实体管道曲线、正规化 UV 网格曲面、程序化着色材质、离散点云与闭合积分实体。


🚀 2.0 版本重大升级与完善

  1. 全新快捷创建与菜单深度集成:
    • 顶部菜单集成:支持在视口 Shift + A 快捷菜单中直接选择 Add -> Mesh -> 数学函数网格 与 Add -> Curve -> 数学函数曲线;
    • 侧边栏自适应引导:即便场景完全为空,打开侧边栏 MathFunc 面板也会展示友好的创建向导与预设一键生成按钮。
  2. 20+ 款经典数学公式预设库 (Preset Library):
    • 内置包括高斯钟形分布、阻尼振荡、悬链线、Sigmoid、双曲抛物面(马鞍面)、猴鞍面、墨西哥草帽 (Sombrero)、同心涟漪、3D 螺旋线、三叶空间纽结、环面 (Torus)、莫比乌斯环 (Mobius Strip)、球面、悬链面、二重积分实体等,参数开箱即用。
  3. 自然数学书写与安全数学引擎 (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 等常用高级函数。
  4. 曲线 3D 实体管道化:
    • 摆脱原版发丝细线的简陋外观,面板直接支持调节 管道倒角粗细 (Bevel Depth)、平滑细分、端盖封闭 (Fill Caps) 与带状挤出。
  5. 网格 UV 展开与物理厚度:
    • 曲面自动生成正规化二维 $(u, v) \in [0, 1]^2$ UV 贴图坐标 (UVMap),无缝适配任何贴图材质;
    • 一键开启 实体化厚度 (Solidify),赋予零厚度数学曲面真实的物理立体质感。
  6. 科学可视化自适应渐变材质:
    • 一键生成并绑定自适应高度与法线渐变的高质感材质;
    • 内置 Turbo(高对比科学彩虹)、Viridis(学术经典)、Plasma(等离子高能)、Cool-Warm(冷暖温差)、Cyberpunk(赛博霓虹发光)、Frosted Glass(半透明磨砂水晶玻璃)、Brushed Gold(金属流金)等丰富配色。
  7. 实时时间演化 (t) 动画:
    • 表达式支持时间变量 t(如波动方程 $\sin(r - t)$),无需手动打关键帧,播放时间轴(空格键)即可实时流体扩散与波动演化!
  8. 微积分分析与 3D 浮动标签:
    • 实时计算并展示 1D 曲线数值定积分、曲线弧长、极值区间,以及 2D 曲面二重积分数值;
    • 支持一键在模型上方生成包含公式与数值的 3D 浮动文字标签。

📦 安装方法

  1. 从本仓库根目录获取 math_function_addon.py。
  2. 打开 Blender,进入顶部菜单:编辑 (Edit) → 偏好设置 (Preferences) → 插件 (Add-ons)。
  3. 点击右上角下拉菜单选择 从磁盘安装... (Install from Disk...),选中 math_function_addon.py。
  4. 在列表中勾选启用 MathFunction Pro - 数学函数几何生成器。
  5. 在 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

About

Blender 插件:数学函数表达式 -> 曲线/曲面/点云/体积体 (符号求导、可关键帧参数、几何节点变换)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages