Avatar

archery

@intothecontinuum / intothecontinuum.tumblr.com

a perspective on mathematics, the pattern, and the abstract

hthr = Import["hthrtzy.jpg"]; hthrC = ImageData[hthr, "Byte"]; hthrG = ImageData[ColorConvert[hthr, "GrayLevel"], "Byte"]; L = Length@hthrC; waves[x_, y_, w_, a_, t_] := Sin[w ((Cos[a] + Sin[a]) x + (Sin[a] - Cos[a]) y) + t*2 Pi] G[ImgDataG_, ImgDataC_, IS_, s_, N_, w_, A_, A1_, A2_, h_, f_, t_] :=   Graphics[  Table[   Translate[    {RGBColor[Part[ImgDataC, y, x]/255], Opacity[.6],     Disk[{x, -y}, (A1 + A2 (1 - Part[ImgDataG, y, x]/255))*A(1 + Sum[waves[x + 200, y + 50, w, a*2 Pi/N, t], {a, 0, N - 1, 1}]/(2 N))]},   h*{Cos[2 Pi*(t + f (x + y)/L)], Sin[2 Pi*(t + f (x + y)/L)]}], {x, 1, L, s}, {y, 1, L, s}], PlotRange -> {{-15, L + 11}, {15, -L - 11}}, ImageSize -> IS] Manipulate[ G[hthrG, hthrC, 540, 8, 5, .1, 4, .7, 3, 2, 1.5, t], {t, 0, 1}]

MA = ImageCrop[Import["marina.jpg"],1300]; MAc = ImageData[MA, "Byte"]; MAg = ImageData[ColorConvert[MA, "GrayLevel"], "Byte"]; waves[x_, y_, w_, a_, t_] := Sin[w ((Cos[a] + Sin[a]) x + (Sin[a] - Cos[a]) y) + t*2 Pi] Manipulate[ Graphics[  Table[   Translate[   {RGBColor[MAc[[y, x]]/255], Opacity[.8],    Disk[{x, -y}, (.7 + 5 (1 - MAg[[y, x]]/255))*3 (1 +         Sum[waves[x, y, .07, a* 2 Pi/5, t], {a, 0, 4, 1}]/(210))]},         3*{Cos[2 Pi*(t + x/1300 + y/1300)],     Sin[2 Pi*(t + x/1300 + y/1300)]}],  {x,1,1300,15}, {y,1,1300,15}], PlotRange -> {{-15, 1315}, {15, -1315}}, ImageSize -> 500], {t,0,.95,.05}]

Thank you MAI + t for hosting intothecontinuum!

Animated GIFs (700 x 700) Mathematica code:

Dashboard[z_] := RGBColor[54/255, 70/255, 93/255, z]; BG = Raster[       Table[.005 ((i - 500)^2 + (j - 500)^2),       {i,1000}, {j,1000}],     {Scaled[{0, 0}], Scaled[{1, 1}]}, {1, 1000},     ColorFunction -> Dashboard]; P = {{5, 8, 10}, {4.5, 12, 7}, {3, 16, 10}}; Manipulate[With[{h=P[[k,1]], u=P[[k,2]], s=P[[k,3]]}, Graphics[  Table[   {AbsoluteThickness[h],    RGBColor[54/255, 70/255, 93/255],     Circle[      {s*Cos[i*2 Pi/u], s*Sin[i*2 Pi/u]},       t + (100 - n) (1 + Sign[100 - n])/2]},  {n, 0, 100, 1}, {i, 0, u - 1, 1}], PlotRange -> {{-16, 16},{-16, 16}}, ImageSize -> 700, Prolog -> BG]], {k,1,3,1}, {t, 0, 1}]

Animated GIF (700 x 700) Mathematica code:

vertices = Table[Table[ RotationTransform[a, {1, 1, 0}, {0, 0, 0}][Tuples[{-1, 1}, 3][[v]]], {v, 1,8, 1}], {a, 0, 2 Pi, Pi/80}]; Edge := {1, 2, 4, 3, 7, 8, 6, 5, 1, 3, 4, 8, 7, 5, 6, 2} CubeTrail[N_, s_, r_, z_, t_] := Graphics[ Table[ Scale[ Translate[{AbsoluteThickness[1.5], Opacity[1], White, Line[ Table[ {vertices[[1 + Mod[t, 80]]][[Edge[[e]]]][[1]], vertices[[1 + Mod[t, 80]]][[Edge[[e]]]][[2]]}, {e, 1, 16, 1}]]}, r*{Cos[2 Pi*(n*t/80 + k)/N], Sin[2 Pi*(n*t/80 + k)/N]}], z^n, r*{Cos[2 Pi*(n*t/80 + k)/N], Sin[2 Pi*(n*t/80 + k)/N]}], {k, 1, N, 1}, {n, 1, s, 1}], PlotRange -> 5, ImageSize -> 700, Background -> RGBColor[54/255,70/255,93/255]] Manipulate[ CubeTrail[4, 8, 3.8, .75, t], {t, 1, 80, 1}]

Animated GIF (700 x 700) Mathematica code:

F[L_, a_, r_, s_, t_] := Table[ {-(r + s*Cos[t])^n*Sin[n*a], (r + s*Cos[t])^n*Cos[n*a]}, {n, 0, L}]; Manipulate[ Graphics[ Table[ Rotate[ Table[ Translate[ Rotate[ {White, Polygon[F[ 160, Pi/2 + (u + k)*2 Pi/5, .975, 0, 0]]}, u*2 Pi, {0, 0}], 3{Cos[(u + k)*2 Pi/5],Sin[(u + k)*2 Pi/5]}], {k, 0, 4, 1}], j*Pi/5, {0, 0}], {j, 0, 5, 5}], PlotRange -> 4, ImageSize -> 700, Background -> RGBColor[54/255, 70/255, 93/255]], {u, 0, 59/60, 1/60}]

This animated GIF is 20 frames long and takes 2 seconds to repeat itself, but if you pick any point and follow its motion continuously it will take 2000 seconds (about 30 minutes) for the point to return to the same location it was in when you started watching it! How long can you follow a single point?

G[p_, q_, a_, b_, c_, t_] := Graphics[  Table[   {Opacity[.7], White,    Disk[     {.71*Cos[a (.05*t + n)*Pi/500 + p],      Cos[b (.05*t + n)*Pi/500 + q]},      .002*Cos[c (.05*t + n)*Pi/500] + .005]},   {n, 1, 1000}],  PlotRange -> {{-.715, .715}, {-1.005, 1.005}}, Background-> RGBColor[54/255,70/255,93/255],   ImageSize -> 500] Manipulate[   Show[    G[0, .2, 29, 13, 11, t],    G[0, .2, 19, 31, 9, t],    G[.3, .29, 3, 23, 17, t],    G[0, .3, 43, 7, 3, t],    G[.1, .13, 31, 19, 2, t]], {t,1,20,1}]

“Rhythm and repetition are at the root of movement. They create a situation within which the most simple, basic forms start to become visually active. By masking them and repeating them they become more fully present. Repetition acts as a sort of amplifier for visual events, which seen singly would hardly be visible, but to make these basic forms release the full visual energy within them they have to breathe as it were – to open and close, or to tighten up and then relax. A rhythm that is alive has to do with changing pace, and feeling how the visual speed can expand and contract, sometimes go slower and sometimes go faster. The whole thing must live.”

                               — Bridget Riley (in Abstract Artists in Their Own Words)

These animations are inspired by Bridget Riley’s “Blaze 1” (1962), and were generated using log-polar transformations.

WfPlot[s_, w_, t_] := Graphics[  Table[   {AbsoluteThickness[2],    Line[     Table[      {i + If[Mod[i, 2] == 0, s*Sin[j*2 Pi/w + i*2 Pi/6 + t], 0],       (-1)^i*.5 + .4*j},     {i, -2, 15}]]},   {j, 1, 69, 1}],  PlotRange -> {{1, 20}, {.8, 27.2}}, ImageSize -> {1000,1000},  Background -> RGBColor[54/255, 70/255, 93/255]]; LogPolar[x_, y_] := {Log[Sqrt[x^2 + y^2]], ArcTan[x, y]}; p:={{66,.2},{6,.3},{11,.4}} Manipulate[ ImageResize[    ImageTransformation[   WfPlot[p[[k,1]],p[[k,2]], t],  LogPolar[#[[1]], #[[2]]] &, DataRange -> {{-Pi, Pi}, {-Pi, Pi}}], 700], {k, 1, 3, 1}, {t, 0, 2Pi}]

S[n_, t_] := Sin[n*3 Pi/50 + t]; Manipulate[ Show[   Table[    Plot[     100 - n + (20*Abs[S[n,t]] + .02)*Exp[-(x - 4*S[n, t])^2/Abs[S[n,t]]],     {x, -10, 10},    PlotStyle -> Directive[White, Thick], PlotRange -> {{-7, 7}, {0, 100}},    Filling -> Axis, FillingStyle -> White, Axes -> False, AspectRatio -> Full,    ImageSize -> {500, 750}, Background -> RGBColor[54/255, 70/255, 93/255]],  {n, 1, 100, 1}]], {t, .001, 2 Pi + .001, (2 Pi + .001)/30}]

Algorithmically generated using circles subjected to constrained randomness

Animated GIFs (600x600)

RR[n_, m_] := (SeedRandom[n*m]; RandomReal[]) L[t_, Q_, g_, i_] := Sum[ Exp[-(t - (RR[i, 5*Q] + j))^2/g], {j, {-1, 0, 1}}] G[c_, F_, P_, s_, o_, g_, A_, a_, w_, t_, r_, Q_, pr_, is_] := Graphics[  Table[   Table[    {RGBColor[RR[i, Q], RR[i, 2*Q], RR[i, 3*Q], o + A*L[t, 5*Q, g, i]],     Disk[      RotationTransform[(k + (-1)^(i*w)*t*a)*2 Pi/F]       [{r*RR[2 i, 4*Q], r*RR[2 i + 1, 4*Q]}], s*L[t, 5*Q, g, i]]},   {k, 0, F - 1, 1}],  {i, 1, P, 1}], PlotRange -> pr, ImageSize -> is,  Background -> c]   Manipulate[[   G[RGBColor[54/255, 70/255, 93/255], 12, 50, .2, 0, .1, .25, 1, 1, t, 1, Q, 1.6, 600],  {Q, {41, 72, 1, 76}}, {t, 0, .96, .04}],

Manipulate[ Graphics[  Table[{RGBColor[54/255,70/255,93/255],    Disk[{x,y}, .55*(1 + Sum[          Sin[(Cos[a*2Pi/11] + Sin[a*2Pi/11])x + (Sin[a*2Pi/11] - Cos[a*2Pi/11])y + t*2Pi], {a,0,10,1}]/22)]}, {x,-25,25,1}, {y,-35,35,1}], PlotRange -> {{-25, 25}, 7/5*{-25, 25}}, ImageSize -> {500, 700}], {t, 0, 1}]

A[N_, t_] := Graphics[   Table[    Rotate[     Table[     {GrayLevel[Abs[j - 1]], EdgeForm[GrayLevel[1]],      Disk[{0, 0}, N - n + j, {Pi, 0}]},     {j, 1, 0, -1}],    Pi*(N - n + 1) (1 + Sin[t*Pi - Pi/2]), {0, 0}],   {n, 0, N, 1}], PlotRange -> N + 1.5, ImageSize -> 500] Manipulate[A[15,t],{t,0,1}]

Making use of the golden angle.

d[x_, y_, r_, c_, s_, F_, n_] := {Disk[    RotationTransform[n*2.4][{x*c^n, y}], r*c^n],  Table[   {White,    Disk[     RotationTransform[k*2 Pi/F, RotationTransform[n*2.4][{x*c^n, y}]]     [RotationTransform[n*2.4][{x*c^n, y}] + c^n {r - s, 0}], s*c^n]},  {k, 0, F - 1, 1}]} Manipulate[ ImageCrop[  Graphics[   Table[     d[3, 0, 1 - .1*Sin[t + n*Pi/110]^2, 1.025, .03, 24, n],   {n, 0, 110, 1}],  PlotRange -> 30, Background -> Black, ImageSize -> 700], {500, 700}], {t, 0, 39 Pi/40, Pi/40}] Manipulate[[ ImageCrop[  Graphics[   Table[     d[3, 0, 1 - .1*Sin[t*3 Pi/40 + n*2 Pi/110]^2, 1.025, .03, 24, n],   {n, If[t < 66 , 0, 2 (t - 65)], If[t < 56, 2 t, 110], 1}],  PlotRange -> 30, Background -> Black, ImageSize -> 700], {500, 700}], {t, 0, 120, 1}]

Sponsored

You are using an unsupported browser and things might not work as intended. Please make sure you're using the latest version of Chrome, Firefox, Safari, or Edge.