如上图,图形在滚动过程中,始终与兰色线保持一个点接触,这图形叫勒洛三角形,是由三条1/6圆弧组成。
A = (0, 0)
α = 0 (滑动条,0,2π)
B = A + (1; -α)
C = A + (1; -α + 2π / 3)
D = A + (1; -α + 4π / 3)
分别以B、C、D为圆心,作三段圆弧:
c: 圆弧(D, B, C)
d: 圆弧(B, C, D)
e: 圆弧(C, D, B)
我们想让它滚动起来,为了简化,我们把上图转化为多边形:
l1 = {c, d, e} (注意按顺序排列)
l2 = 序列(描点(l1, i), i, 0, 1, 1 / 200)
p1 = 多边形(l2)
现在它可以以A点为中心旋转了,我们要让它在x轴上滚动,要平移图形的同时,需要修正图形纵坐标:
a = 最大值(y(l2))
p2 = 平移(p1, (α, sqrt(3) - a))
O_1 = 平移(A, (α, sqrt(3) - a))
p3 = 平移(p1, (α + 3, sqrt(3) - a))
O_2 = 平移(A, (α + 3, sqrt(3) - a))
g = 线段(O_1, O_2)
f: y = sqrt(3)
好了,开启α动画,速度可调到4,就可以在x轴上动起来了。