Google ClassroomGoogle Classroom
GeoGebraGeoGebra Classroom

任意多边形序列变化-矩阵法1-点列表变换

20260720 创建
#初始任意多边形(可自行修改顶点) #poly0 = {(1,1), (4,0), (5,2), (2,3), (1,2)} poly0 = {A,B,C,D,E} # 边数 n = 长度(poly0) #分点比例滑动条 λ = 滑动条(0, 1, 0.01, 0.2) # 最大迭代层数 k_max = 10 m= 滑动条(0, k_max, 1, 0) P0={} M={} MatrixLayers ={} polys={} polyM0={} # 1. 构造初始坐标矩阵(2行n列,每列一个顶点的x,y)✓ P0 = 转置(映射({x(p), y(p)}, p, poly0)) #2. 构造n阶循环变换矩阵M(n阶方阵) M = 序列(序列(如果(j == i, 1-λ, j == mod(i, n)+1, λ, 0), j, 1, n ), i, 1, n) #3. 生成所有迭代层的坐标矩阵 MatrixLayers = 序列(P0 * M^k, k, 0, m) # 4. 坐标矩阵转回点列表并绘制 polys=序列(序列( (元素(MatrixLayers ,p,1, j), 元素(MatrixLayers ,p,2, j)), j, 1, 长度(元素(MatrixLayers , p,1)) ),p,1,m) polyM0=序列(多边形(元素(polys,j)),j,1,m) #第K个 k = 滑动条(0, k_max, 1, 0) polyMk=polyM0(k)
要将转化为2行n列矩阵,应用n阶循环变换矩阵M(n阶方阵)变换后,再次将矩阵变换为点 不足 步骤较复杂 只能针对点进行变换
n 阶组合矩阵 M(n×n) 右乘坐标矩阵,作用于「顶点维度」 新顶点由所有原顶点线性组合得到,依赖相邻顶点 图形形状会发生收缩、变形(任意多边形) 仅用于顶点序列的重构、定比分点、迭代分形