递归三角花:关于分形对称性和缩放的研究
姓名:艾哈迈德·埃尔卡图姆
日期:2025年9月11日
课程名称:乔治梅森大学数学401课程:通过3D打印学习数学
背景介绍及数学研究动机
受自然花卉形态的启发,本项目基于可缩放的等腰三角形,探索如何利用参数化几何和径向对称性构建出一种递归式花朵结构。该模型通过OpenSCAD生成——这是一种基于脚本的实体建模语言,广泛应用于数学可视化和3D打印工作流程中。
其背后的数学原理涉及递归分层、径向对称和几何缩放。每个"花瓣"由一个三角棱柱构成,呈圆形排列(花瓣数量n由用户自定义),并以递减的方式逐层堆叠。每一层的变换都包含两个关键操作:
• 缩放:一个常数因子 s(0 < s < 1)会缩小每一层的尺寸。
• 翻译:每一层都会根据前一层的缩放高度成比例地垂直上移一定距离。
使用线性混合方式在两种颜色(红色和黄色)之间添加了颜色插值操作。插值效果由以下公式定义:
C(t) = C1 + (C2 - C1) × t
其中t是归一化的层索引(取值范围为0到1)。这种设计模拟了现实中花朵常呈现的径向色渐变效果。
代码与设计流程
整个模型完全使用OpenSCAD语言编写,采用模块化和递归结构。每个三角形花瓣都通过在顶点和底部之间添加一个额外顶点来模拟花瓣的有机形态,从而形成类似曲线的微小凸起。主要逻辑被组织在三个自定义模块中:
• 三角形面():定义单瓣形状,并将其挤压成棱柱形状。
• 三角形戒指():通过绕Z轴旋转,将n片花瓣排列成一个圆环形状。
• 递归绽放():通过递归调用自身,构建更小的、垂直堆叠的圆环结构。
颜色混合通过自定义的 lerp color(t) 函数实现,而缩放/高度调整则通过递归参数传递。使用 scale() 和 translate() 函数,可以在每次迭代中完全控制位置和尺寸调整。
OpenSCAD非常适合这种设计方法,因为它能对几何形状进行数学控制,这对于涉及变换、递归和参数化建模的教学场景尤为重要。
3D 打印指导说明
• 使用的打印机:Ultimaker S5
• 耗材:PLA(丝绸红/黄渐变色,1.75毫米)
• 层厚:0.2毫米
• 打印时间:约5小时
• 支持:无需支持
• 木筏:可选配件;用于提高粘附效果
• 填充率:10%(尽管模型大部分是实心的)
引用与资源
• OpenSCAD 文档:https://en.wikibooks.org/wiki/OpenSCAD_User_Manual
• 几何级数:https://mathworld.wolfram.com/GeometricSeries.html
模型来源
