折线匀速动点工具-学习
折线匀速动点工具
学习自:肖建伟 的 折线匀速动点工具,https://www.geogebra.org/m/zqmzqgqf
https://tieba.baidu.com/p/6844180331
因此,要实现点在折线上的匀速运动,肯定就不能直接用滑动条a值了,但各点路径值是可以确定的,且每个点到起始点的路径长度是可以计算的,这样就可以建立关键点(顶点)路径值和路径长度的关系,我们用下边方法获取每个点到起始点路径长度:
l3 = 合并({{0}, 序列(总和(最前元素(l2, i)) / 总和(l2), i, 1, 长度(l2))})
因为要把起始点计算进来,因此我们把它合并在计算表中
各点路径值:
l4 = 序列(i / 长度(l2), i, 0, 长度(l2))
这里用到一个命令“数据函数”,建立长度、路径关系:
g(x)=数据函数(l3,l4)
最后,我们定义A点为匀速运动点:
A = 描点(l2, g(a))
完整代码如下:


肖建伟作品代码:
l1={(0,0),(1,0),(3,1),(5,3)}
f=折线(l1)
l2=序列(abs(l1(k+1)-l1(k)),k,1,长度(l1)-1)
v=3.6
l3=追加(0,序列(((总和(l2,k))/(v)),k,1,长度(l2)))
t=1.087
a=条件计数(t≥p,p,l3)
A=如果(a<长度(l1),l1(a)+v (t-l3(a)) 单位向量(l1(a+1)-l1(a)),l1(a))
