[code]#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.5, 0)[br]#B = (0.5, 0.5, 0)[br]#C = (0.5, 0.5, 0)[br]#D = (0.5, 0, 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 = (1, 0.5, 0.5)[br]B = (0.5, 0.5, 0.5)[br]C = (0.75, 1, 0.666)[br]D = (0.8, 1, 0.333)[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]map(v, x, y, z, w) = z + (v - x) * (w- z) / (y - x)[br][br]Fx(x, y, z) = (x-2.5)/((x-2.5)^2 + (y)^2+ (z)^2) - (x+2.5)/((x+2.5)^2 + (y)^2+ (z)^2)[br]Fy(x, y, z) = (y-0)/((x-2.5)^2 + (y)^2+ (z)^2)- (y+0)/((x+2.5)^2 + (y)^2+ (z)^2)[br]Fz(x, y, z) = (z-0)/((x-2.5)^2 + (y)^2+ (z)^2)- (z+0)/((x+2.5)^2 + (y)^2+ (z)^2)[br]L = Sequence(-4 + 8k / 7, k, 0, 7)[br]#Sequence(k, k, -4, 4, 2)[br]LP = Flatten( Zip( Zip( Zip( (a, b, c), a, L ), b, L ), c, L ) )[br]s = 1[br]VF0 = Zip(Translate(s*(Fx(P), Fy(P), Fz(P)), P), P, LP)[br]VL = Zip(abs(V), V, VF0)[br]VA = Zip(map(val, 0, 1*Max(VL), 1, 0), val, VL)[br]VF = Zip(Translate(UnitVector(s*(Fx(P), Fy(P), Fz(P))), P), P, LP)[br][br]m = Length(VF)[br]Execute(Zip("Q"+k+" = Element(VF, "+k+")", k, 1..m))[br][br]Execute(Zip("SetDynamicColor(Q"+i+",Min(1, Max(0, functionRed(Element(VA, "+i+")))),Min(1, Max(0, functionGreen(Element(VA, "+i+")))), Min(1, Max(0, functionBlue(Element(VA, "+i+")))),1)",i,1..m))[/code]