点阵系列练习2
20260713 创建
研习自:又见点阵,再谈点阵的通法和各种方法,GGB神器还是留起解决那些“难言之隐、难想之景、难定之论”
#方法1,可扩展到n边形,三维点
n=滑动条(1,100,1)
赋值(n,4)
m=滑动条(1,100,1)
赋值(m,10)
mm=滑动条(1,10,1)
赋值(mm,4)
B=描点(x轴)
赋值(B,(1,0))
a=abs(B)
α=(360°) /n
A=交点(x轴,y轴)
#P不是很了解,形成折线的点的旋转中心
P =(0.5a, 0.5a /tan(α/2))
#基础折线
f=折线(序列(旋转((a, 0), i α, P),i, 0, n- 2, 1))
#对称轴
g= 直线(A, P)
#折线沿对称轴交替翻转并放大
l1 =序列(位似(旋转(f, 180° (i + 1), g), i), i, 1, mm, 1)
#描点,间距为a
l2=最前元素(扁平列表(映射(序列(描点(s, t / s), t, 0, s, a), s, l1)), m)
#画出向量
l3=序列(向量(l2(i), l2(i+ 1)),i,1,长度(l2) -1, 1)
u=向量(A, B)
#方法2
#必须A=(0,0),B=(1,0),否则出错
h:y=x
l22=迭代列表(如果(p ∈ x轴 ∧ 余式(x(p), 2) ≟ 0, p + (1, 0), p ∈ h ∧ 余式(x(p), 2) ≟ 1, p + (-1, 0), p ∈ h ∧ 余式(x(p), 2) ≟ 0, p + (0, -1), p ∈ x轴 ∧ 余式(x(p), 2) ≟ 1, p + (0, 1), p ∈ y轴 ∧ 余式(y(p), 2) ≟ 1, p + (0, 1), p ∈ y轴 ∧ 余式(y(p), 2) ≟ 0, p + (1, 0), 2p - q), q, p, {A, B}, m)
l23=序列(向量(l22(i), l22(i + 1)), i, 1, 长度(l22) - 1, 1)
#p ∈ x轴 ∧ 余式(x(p), 2) ≟ 0, p + (1, 0), x轴,x偶数,向右
#p ∈ h ∧ 余式(x(p), 2) ≟ 1, p + (-1, 0), x=y,x奇数,向左
#p ∈ h ∧ 余式(x(p), 2) ≟ 0, p + (0, -1), x=y,x偶数,向下
#p ∈ x轴 ∧ 余式(x(p), 2) ≟ 1, p + (0, 1), x轴,x奇数,向上
#p ∈ y轴 ∧ 余式(y(p), 2) ≟ 1, p + (0, 1), y轴,y奇数,向上
#p ∈ y轴 ∧ 余式(y(p), 2) ≟ 0, p + (1, 0), y轴,y偶数,向右
#否则,搞不懂为什么是2p - q
# 2p - q
#方法3
#必须A=(0,0),B=(1,0),否则出错
l34=迭代列表(如果(y(p) ≟ 0, p + (余式(x(p) + 1, 2), 余式(x(p), 2)), x(p) ≟ y(p), p + (-1 余式(x(p), 2), -余式(x(p) + 1, 2)), x(p) ≟ 0, p + (余式(y(p) + 1, 2), 余式(y(p), 2)), 2p - q), q, p, {A, B}, m)
l35=序列(向量(l34(i), l34(i + 1)), i, 1, 长度(l34) - 1, 1)
#迭代列表(如果(
#在x轴上(y=0),判断余式(x(p), 2),x为奇数第2个点p+(0,1),即向右,否则+(1,0)即向上
#y(p) ≟ 0, p + (余式(x(p) + 1, 2), 余式(x(p), 2)),
#在y=x上,判断余式(x(p), 2),x为奇数第2个点p+(-1,0),即向左,否则+(0,-1)即向下
#x(p) ≟ y(p), p + (-1 余式(x(p), 2), -余式(x(p) + 1, 2)),
#在y轴上(y=0),判断余式(x(p), 2),x为奇数第2个点p+(0,1),即向右,否则+(1,0)即向上
#x(p) ≟ 0, p + (余式(y(p) + 1, 2), 余式(y(p), 2)),
#否则
#2p - q
#方法4 还搞不懂
m=滑动条(1,100,1)
赋值(m,4)
mm=滑动条(1,10,1)
赋值(mm,4)
l41=扁平列表(序列({(1,0),(0,1)*1^序列(2k-1),(-1,0)*1^序列(2k-1),(0,1),(1,0)*1^序列(2k),(0,-1)*1^序列(2k)},k,1,mm))
l42=追加((0,0),序列(总和(l41,j),j,1,m-1))
l43=序列(向量(l42(i),l42(i+1)),i,1,m-1)