Mystery curves flying
Check the first version of the script in the applet.
The following is an updated version using the command Zip:
##-- Set initial values --##
m = 5
Lm = Sequence(m)
#Complex numbers and frequencies#
Cx = Zip(RandomUniform(-2,2), l, Lm)
Cy = Zip(RandomUniform(-2,2), l, Lm)
n = Zip(RandomBetween(-30, 30), l, Lm)
#Calculate components: C * exp(n * i * x)#
cX = Zip(cx * cos(nr * x) - cy * sin(nr * x), cx, Cx, cy, Cy, nr, n)
SetVisibleInView(cX, 1, false)
cY = Zip(cx * sin(nr * x) + cy * cos(nr * x), cx, Cx, cy, Cy, nr, n)
SetVisibleInView(cY, 1, false)
#Choose a random number #
r = RandomBetween(2, m)
#Set the sums of components#
fx(x)= Sum(cX, r)
fy(x)= Sum(cY, r)
SetVisibleInView(fx, 1, false)
SetVisibleInView(fy, 1, false)
####
#For testing
s = Slider(0, 4 pi, pi/2, 1, 150, false, true, false, false)
SetValue(s, 4 pi)
a = Curve(fx(t), fy(t), t, 0, s)
ShowLabel(a, false)
SetColor(a, 0.85, 0.85, 0.85)
#b = Curve(fx(t), fy(t), t, int + pi, int + val + pi)
#c = Curve(fx(t), fy(t), t, int, int + val)
####
##-- Curves --##
#Animation setup#
speed = Slider(0, 4, 0.01, 1, 150, false, true, false, false)
SetValue(speed, 0.55)
SetVisibleInView(speed, 1, false)
SetVisibleInView(speed, 2, true)
int = Slider(0, 2 pi, 0.01, speed, 150, false, true, false, false)
SetVisibleInView(int, 1, false)
SetVisibleInView(int, 2, true)
#Auxiliar values#
#Number of sections
nb = 10
#Thickness
th = 2.5
#Index for curves
Lk = Sequence(nb)
#Names for curves
LnameA= Zip("secA"+Text(n)+"", n, Lk)
LnameB= Zip("secB"+Text(n)+"", n, Lk)
SetVisibleInView(LnameA, 1, false)
SetVisibleInView(LnameB, 1, false)
#Slider to set the length of the curve
val = Slider(0.01, pi/4, 0.01, 1, 150, false, true, false, false)
SetValue(val, RandomUniform(0.06, pi/4))
SetVisibleInView(val, 1, false)
SetVisibleInView(val, 2, true)
#Plot curves
Execute(Zip(""+name+" = Curve( fx(t), fy(t), t, int + pi + ("+k+"-1)* val / nb, int + pi + "+k+" * val / nb )", name, LnameA, k, Lk))
Execute(Zip(""+name+" = Curve( fx(t), fy(t), t, int + ("+k+"-1)* val / nb, int + "+k+" * val / nb )", name, LnameB, k, Lk))
##-- Settings: Colors and Thickness --##
R = random()
G = random()
B = random()
Execute(Zip("ShowLabel("+name+", false)", name, LnameA))
Execute(Zip("SetLineThickness("+name+", th * "+k+")", name, LnameA, k, Lk))
Execute(Zip("SetDynamicColor("+name+", R, G, B)", name,LnameA))
Execute(Zip("ShowLabel("+name+", false)", name, LnameB))
Execute(Zip("SetLineThickness("+name+", th * "+k+")", name, LnameB, k, Lk))
Execute(Zip("SetDynamicColor("+name+", 1-R, 1-G, 1-B)", name,LnameB))
SetBackgroundColor("Black")
ShowGrid(false)
StartAnimation(int, true)
ShowAxes(false)