这是指针随机转动的效果,能不能做到指针不动,而转盘随机动呢?
答案是肯定的!来看看修改后的效果:
相关设置都没有改变,依旧可以选择将圆平均划分为几个区域(可划分为3到20个区域),而每个区域都可自行选择颜色(共5种颜色可选);另外,指针的起始位置、转动的速度也都可以选择。
自动转动10次按钮也是有的:
我转啊转啊
问题来啦:怎么在上一个作品的基础上进行修改?主要是修改什么呢?
扇形( <圆或椭圆>, <点1>, <点2> )
注:扇形 (Sector)。
这么一想,一下子找到了突破点!那么,来尝试修改吧!
我们需要n个扇形,并且让这些扇形随机转动。
于是,依照刚刚的思路:
注:序列(Sequence)、旋转(Rotate)。
而原作品中,构造扇形的所有点,是用l3 = 序列(描点(c, 元素(l1, k)), k, 1, n + 1);所以,我们只需输入:
l3 = 序列(旋转(C, k), k, 0°, 360°, 360° / n)
另外,需注意的是:现在做到了转盘随机动,但,指针也是跟着转。
于是,将A0重命名为A:
并在指令栏分别输入:
A0 = 描点(c, 0)
u = 向量(A)
B0=如果(m<2, A0, 复制自由对象(B))
注:描点(Point)、向量(Vector)、复制自由对象(CopyFreeObject)。
目前效果如下:
可以发现还有两个问题需要解决。
原作品中,需要判断指针落在第几个区域,即为判断点B的路径值范围。
现在,指针为u = 向量(A),则应判断点A的路径值范围。
扇形的1,2,3标示是不正确的,下一部分再修改
而我们知道路径值为0到1。
于是,只需在指令栏分别输入:
b = 路径值(B)
l4 = 去除未定义对象(序列(如果(b + k / n < 路径值(A) < b + (k + 1) / n || b + k / n - 1 < 路径值(A) < b + (k + 1) / n - 1, k + 1), k, 0, n - 1))
注:路径值 (PathParameter)、去除未定义对象 (RemoveUndefined)。
目前效果:
文本1,2,3等是用来标示扇形,以便将下拉列表与扇形对应起来。所以扇形转动时,文本也应跟着转动。
原作品中,是在圆d上取一系列的点,用来决定文本的位置:
于是,只需输入:
D = (-0.22, 0.22)
C' = 旋转(交点(d, 线段(O, C)), 360° / n * 如果(m == 0, 1 / 3, 0.39 < b < 0.89, 2 / 3, 1 / 3), D)
l5 = 序列(旋转(C', k, D), k, 0°, 360°, 360° / n)
注:交点(Intersect)。
至此,作品就完成了。