Google ClassroomGoogle Classroom
GeoGebraGeoGebra Classroom

任意多边形序列变化-矩阵法2-图形应用矩阵

20260720 创建
poly0V = {A,B,C,D,E} poly0=多边形( {A,B,C,D,E}) Pc=重心(poly0) Pt=(0,0) # 边数 n = 长度(poly0V) #分点比例滑动条 λ = 滑动条(0, 1, 0.01, 0.2) #缩放比例滑动条 factor = 滑动条(0, 1, 0.01, 0.2) # 最大迭代层数 k_max = 30 m= 滑动条(0, k_max, 1, 0) Mtype= 滑动条(1, 3, 1, 0) #分点比例滑动条 alpha = 滑动条(0, 360°, 1° ) MT={} Mr={} 赋值(Pt,(x(Pc),y(Pc))) MT={{1,0,x(Pt)},{0,1,y(Pt)},{0,0,1}} Mt=逆反(MT) #MR={{cos(alpha),sin(alpha)},{-sin(alpha),cos(alpha)}} MR={{cos(alpha),sin(alpha),0},{-sin(alpha),cos(alpha),0},{0,0,1}} Mr=逆反(MR) MD={{factor,0,0},{0,factor,0},{0,0,1}} Md=逆反(MD) MM=MR MD polyM=序列(应用矩阵(MT (MR MD)^(k) Mt,poly0), k, 0, m) polyM2=序列(应用矩阵(MM^k,poly0), k, 0, m) polyM3=应用矩阵(MT, 序列(应用矩阵(MM^k, 应用矩阵(Mt, poly0)), k, 0, m)) #polyM4=序列(应用矩阵(MT (MR MD)^(k) Mt,poly0), k, 0, m)
要先将中心移到坐标原点在进行旋转和位似变换,最后再平移到原来的位置,可应用到集合对象,任意多边形。 变换矩阵都是三阶方阵 不足之处,适用于旋转和位似,如果平移变换较多的画就反而复杂。 变换后的多边形不一定与上一层的图像接触或者有交点,多边形的角可能会伸出外边。
三阶仿射矩阵(3×3) 左乘坐标矩阵,作用于「坐标维度」 每个点独立做坐标变换,和其他顶点无关 整体刚体 / 相似变换,图形形状不变 任意点集、任意图形都适用