点阵序列练习-多种方法
20260713 创建
研习自:geogebra进阶14:一道中考题的点阵(多种方法)
修改后:
n=Slider(1,30,1)
赋值(n,13)
#方法一:逐个有规律的点绘制(序列)
#第一类的点,纵坐标为0,横坐标为2,4,6,8,……,通项公式为2n,这类的点可以用指令:
l1=序列((2k, 0), k, 0, n)
#第二类的点,纵坐标为1,横坐标为1,5,9,13,……通项公式为4n+1,这一类的点可以用指令:
l2=序列((1 + 4k, 1), k, 0, n)
#第三类的点,纵坐标为2,横坐标为3,7,11,15,……通项公式为4n+3,这一类的点可以用指令:
l3=序列((3 + 4k, 2), k, 0, n)
#利用集合的运算,合并指令+升序排列把这三个序列合并并且按顺序排列点的坐标
l4=升序排列(合并({l1, l2, l3}))
#再让l4的点能逐个出现;
l5=序列(l4(i), i, 1, n)
#绘制出向量。
l6=序列(向量(l5(k), l5(k+1)), k, 1, n)
#最后一步,标注这些点:
l7=序列(文本(l5(i), l5(i), true, true), i, 1, n)
#方法二:如果+取余(王有明老师)
#即这些点的横坐标是k,纵坐标的规律和被4除的余数有关,利用如果指令,就可以对这些点进行分类,然后一步绘制成功!
l21=序列((k, 如果(mod(k, 4) ≟ 0, 0, mod(k, 4) ≟ 1, 1, mod(k, 4) ≟ 2, 0,mod(k, 4) ≟ 3, 2)), k, 0, n)
#往下绘制向量和点的标注和前面类似:
l22=序列(向量(l21(k), l21(k+1)), k, 1, n)
l23=序列(文本(l21(i), l21(i), true, true), i, 1, n)
#方法三:多元迭代 方法是由文海平老师提出:
A3=描点(x轴)
B3=(1, 1)
C3 =描点(x轴)
D3 =(3, 2)
E3=(-0.65, -0.22)
赋值(A3,(0,0))
赋值(C3,(2,0))
#
I31 =迭代列表(平移(p, 向量((4, 0))), p, q, r, t, {A3, B3, C3, D3}, n)
I32 =序列(文本(l31(i), E3 + I31(i), true, true), i, 1,长度(I31))
#方法四:利用序列+平移
#
l44={A, B, C, D}
l46=flatten(序列(平移(l44, 向量(k 向量((4, 0)))), k, 0, n))
l47=序列(向量(l46(k), l46(k+1)), k, 1, n)
#思考:能否对纵坐标进行大小的排序排列呢?
AA=(3,1)
BB=(1,4)
CC=(2,2)
DD=(3,5)
l51={AA, BB, CC, DD}
l54=升序排列(映射((y(q), x(q)), q, l51))
l55=映射((y(p), x(p)), p, l54)
#即思路是先把原来的四个点的横纵坐标对调进行升序排列,再把升序后这些点的横纵坐标调换回来。
#利用嵌套,也可一步完成:
l56=映射((y(p), x(p)), p, 升序排列(映射((y(q), x(q)), q, l51)))
20260720
新增方法6
l61={(1,1),(1,-1),(1,2),(1,-2)}
m=滑动条(1,30,1)
赋值(m,13)
#总和(1^序列(表达式))
#l62=扁平列表(序列({(1,1)*总和(1^序列(k)),(1,-1)*总和(1^序列(k)),(1,2)*总和(1^序列(k)),(1,-2)*总和(1^序列(k))},k,1,m))
l63=扁平列表(序列({(1, 1) 总和(1^序列(1)), (1, -1) 总和(1^序列(1)), (1, 2) 总和(1^序列(1)), (1, -2) 总和(1^序列(1))}, k, 1, m))
l64=追加((0,0),序列((0,0) + 总和(l63, i), i, 1, n))
l66= 序列(向量(l64(i), l64(i + 1)), i, 1, n)
原理
#原:基本方向*1^序列(表达式),一步一步的前进,有很多过程点,难以区分转向的点或者说拐点
l211=扁平列表(序列({(0,-1)*1^序列(2k-1),(1,0)*1^序列(2k),(0,1)*1^序列(2k),(-1,0)*1^序列(2k+1)},k,1,m))
#进阶:基本方向*总和(1^序列(表达式)),跳跃式前进,忽略过程点,只有转向的点或者说拐点,m控制一个一个周期的增加
l211=扁平列表(序列({(0,-1)*1^序列(2k-1),(1,0)*1^序列(2k),(0,1)*1^序列(2k),(-1,0)*1^序列(2k+1)},k,1,m))
步骤:
#m个周期,每一步,或者说各步骤的方向向量
l01=扁平列表(序列({(0,-1)*1^总和(序列(2k-1)),(1,0)*总和(1^序列(2k)),(0,1)*总和(1^序列(2k)),(-1,0)*总和(1^序列(2k+1))},k,1,m))
#计算每一步已经走过的总路程,定位从A点出发,得到每一步所在的点。
l02 = 追加(A, 序列(A + 总和(l23, i), i, 1, n))
#绘制向量
l03 = 序列(向量(l02(i), l02(i + 1)), i, 1, n)
l04=文本("P_{" + n + "}:" + (l03(n)))
l05=序列(文本(l021(i), l02(i), true, true), i, 1, n)
设置显示条件(l21,Step==2)
研习自:geogebra进阶207:(续)再谈一类有序点阵的绘制通法(争取套路化和简单化)