‹ 返回工坊合集

面饰艺境 · 数墙面饰艺术工坊

群论桌游系列 · 第十一部 —— 十七面饰群 × 矢量艺术画板:画笔 / 形状 / 色彩 / 光效 · 一笔生万象,对称即美学 | 九章格数学 PhiloMath
0
基本域元素
1
每格对称像
p1
当前家族

规则卡 · 从印章到画笔5 分钟

第六部我们用印章盖出墙纸;这一部您直接执笔作画——数学藏在引擎里:您只需画好一个基本域,十七种面饰群自动把它繁殖成整面墙。数学是骨骼,艺术是血肉。

什么是面饰?—— 十七个家族统治的无限平面

面饰(wallpaper)是沿两个方向无限重复的平面纹样:墙纸、地砖、蜂窝、窗棂、伊斯兰几何纹样。它的全部对称构成面饰群——无限群,却只被 17 种结构统治(1891 年费奥多罗夫完成分类)。晶体学限制:旋转只能是 1、2、3、4、6 折——五折与七折被格的平移一致性直接排除。

十七个家族(IUC 记号速查)

晶格家族(p = 初基格,c = 心格;m = 镜,g = 滑移;数字 = 最高旋转阶)
斜格p1p2
矩形格pmpgpmmpmgpgg
菱形格cmcmm
正方格p4p4mp4g
六角格p3p3m1p31mp6p6m
IUC中文名点群对称元素签名每格像数
p1平移墙C1仅平移1
p2旋转墙C2180° 心 ×4 / 格2
pm竖镜墙Cs平行镜 ×2 / 格2
pg滑移墙Cs平行滑移 ×2 / 格,无镜2
cm菱镜墙Cs镜与滑移交替(菱格半格心签名)4
pmm双镜墙D2垂直双镜 + 半转心,全对称矩格4
pmg镜滑墙D2镜 + 错位半转心 + 滑移4
pgg双滑墙D2双向滑移 + 心,无镜4
cmm菱双镜墙D2菱格双镜 + 半格平移8
p4四方墙C4四折心 + 二折心4
p4m四方全对称D4四折心在镜交点(45° 镜对)8
p4g四方滑移D4四折心错开镜,对角滑移8
p3三折墙C3三折心 ×3 / 格,无镜3
p3m1三折镜心D3三折心全在镜交点上6
p31m三折错镜D3部分三折心不在镜上(错位镜)6
p6六折墙C6六折心 + 三折心 + 二折心6
p6m蜂窝全对称D6六角镜网(蜂窝 = 蜜蜂的选择)12
您只负责画一个格子(基本域画板,120×120)。例如选 p6m:引擎把您的笔迹转出 6 折、翻 6 面镜——一笔落纸,十二像同生,再沿六角格两个方向无限平移。选 p1 则只有平移:笔迹原样排队。十七个家族 = 十七种「繁殖方式」。

本工坊工具速览

坐标约定:基本域 120×120 = 一个晶格胞(格角为原点)。每个对称动作编码为 g = (M, q):M 是格基下 2×2 整数矩阵,q 是一对以 ⅙ 格为单位的整数平移。引擎把 g 编译成 SVG matrix(M00, M10, M01, M11, 20q₀, 20q₁)——全整数分量,零浮点误差。

艺术画板核心创作

左侧选工具,中间画基本域,右侧调属性;下方选家族、看整面墙实时生成。每一笔都被对称引擎即时繁殖。📱 手机版:工具在画板上方一行,画板占满屏宽,属性在画板下方;折线画满 3 点后点「✅ 闭合折线」收笔。

选取
🖱选择
手绘
✏️画笔
🧽橡皮
形状
📏直线
▭矩形
⬭椭圆
📐折线
✳星形
视角
🧭参考线
基本域 · 120 × 120(格角 (0,0) = 对称原点)
── 画笔 / 形状样式(下一笔的默认值)──
填充色
描边色
线宽 3 px
不透明度 100%
✨ 发光 0(0–5 档)
🌓 投影
✳ 星形角数 5
🎨 填充调色板(选中元素时点按 = 改其填充)
🖌 描边调色板
── 元素列表(0)──
对称引擎: 平铺范围 4 × 4 格

家族画廊 · 一稿十七面对比实验

同一份基本域设计,投到十七个家族上各是什么样子?——这是「面饰群分类定理」的可视化实验台。点选任意卡片即切换画板家族。

对比 p3m1 与 p31m(同为 D3 点群、同为六角格):同一份设计,一个「三折心全落在镜交点」,一个「部分心错开镜面」——记号里 3m1 与 31m 的数字位置对调,正是心的位置对调。再对比 p4m 与 p4g:镜网 45° 对角 vs 对角滑移错位。点群相同、实现不同——这正是 17 = 5 晶格 × 点群分岔的总账。

定理与教学教师版

面饰群分类定理(费奥多罗夫,1891):设 G 是面饰群,Λ 是它包含的全部平移,则 Λ ≅ Z² 是 G 的正规子群;商群 G/Λ(点群)必是 10 个晶体学点群 C1、Cs、C2、D2、C4、D4、C3、D3、C6、D6 之一(晶体学限制:格上旋转阶只能是 1、2、3、4、6)。点群与「点群在格上的实现方式(镜 / 滑移 / 心的位置)」组合,共得 17 类。完整证明见第六部《十七纹墙纸》定理之家。

本工坊的数学内核(全部经 Python 验证器 validate_wallpaper_art.py 实锤 · 21 断言)

组件实现
群元素编码g = (M, q):M 为格基下 2×2 整数矩阵(行主序 4 元组),q 为整数对,真实平移 = q/6 格;与第六部印章引擎同构
乘法公式mul(a,b) = 先 a 后 b:M = M_b·M_a,q = M_b·q_a + q_b(mod 6 归一)
渲染矩阵board 坐标 b′ = M·b + 20q → matrix(M00, M10, M01, M11, 20q₀, 20q₁)——全整数分量,零浮点误差
实空间格斜格 (96,0)+(52,84)、矩格 (104,0)+(0,70)、正方 (96,0)+(0,96)、六角 (100,0)+(50,50√3);外层 matrix 把 120×120 基本域贴成真实晶格胞
闭包BFS 商群 G/Λ(q mod 6),闭包规模 = 点群阶 ×(菱格 ×2)——17 族逐一与 Python 对拍
参考线旋转心 b = (I−M)⁻¹·(20q+120n) mod 120;镜 / 滑移轴方向 d = ker(M−I)、法向 p = ker(M+I),偏移 f = 10(q×d) mod 120,每陪集恰 2 条轴;纯镜判定 k′p ≡ q (mod 6)

教学建议(2 课时)

导出说明