[code]#A = (0.5, 0.5, 0.5)[br]#B = (0.5, 0.5, 0.5)[br]#C = (1, 1, 1)[br]#D = (0, 0.33, 0.67)[br][br]#A = (0.5, 0.5, 0)[br]#B = (0.5, 0.5, 0)[br]#C = (0.1, 0.5, 0)[br]#D = (0, 0.5, 0)[br][br]#A = (0.5, 0, 0.5)[br]#B = (0.5, 0, 0.5)[br]#C = (0.5, 0, 0.5)[br]#D = (0, 0, 0.5)[br][br]A = (0, 0.5, 0.5)[br]B = (0, 0.5, 0.5)[br]C = (0, 0.5, 0.333)[br]D = (0, 0.5, 0.667)[br][br]functionRed(x) = x(A) + x(B) * cos(2pi(x(C) * x + x(D)))[br]functionGreen(x) = y(A) + y(B) * cos(2pi(y(C) * x + y(D)))[br]functionBlue(x) = z(A) + z(B) * cos(2pi(z(C) * x + z(D)))[br][br]infCurve = Curve( sqrt(2) cos(t)/((sin(t))^2+1), sqrt(2) cos(t) sin(t)/((sin(t))^2+1) , t, 0, 2pi)[br][br]t = Slider(0, 2pi, 0.01, 2, 200)[br][br]LPs = Sequence(infCurve(k + t), k, 0, 3, 0.03)[br][br]m = Length(LPs)[br]Lm = 1..m[br][br]Execute(Zip("C"+k+" = Circle(Element(LPs, "+k+"), 0.02*ln("+(k+1)+"))", k, Lm))[br]Execute(Zip("ShowLabel(C"+k+", false)", k, Lm))[br][br]Execute( Zip("SetDynamicColor(C"+k+", Min(1, Max(0, functionRed("+k+"/m))), Min(1, Max(0, functionGreen("+k+"/m))), Min(1, Max(0, functionBlue("+k+"/m))), 1)", k, Lm) )[/code]