Skip to main content
2 of 4
added 700 characters in body
MelaGo
  • 9.1k
  • 1
  • 11
  • 26

This answer is similar to @Edmund's, except with the rotation angle dependent on the radius:

pts2 = Table[
   Table[{x Sin[t], x Cos[t]}, {t, 0, 2 \[Pi], \[Pi]/(2 x)}], {x, 1, 8}];
a = Table[VectorPlot[{vx[x, y], vy[x, y]}, {x, -2 \[Pi], 2 \[Pi]}, {y, -2 \[Pi], 2 \[Pi]}, 
    VectorPoints -> (Flatten[Table[RotationMatrix[\[Phi]/x].# & /@ pts2[[x]], {x, 1, 8}], 1])], {\[Phi], 0, 2 \[Pi], \[Pi]/20}];

Export["vectors.gif", a]

enter image description here

Edited to include an updated version in which it's easier to adjust the parameters:

numcircles = 20;
circlespacing = .5;
pointspacing = \[Pi]/4;
frameinterval = \[Pi]/20;

pts2 = Table[Table[{x Sin[t], x Cos[t]}, {t, 0, 2 \[Pi], pointspacing/x}], {x, 1, numcircles, circlespacing}];
a = Table[VectorPlot[{vx[x, y], vy[x, y]}, {x, -numcircles circlespacing, numcircles circlespacing}, {y, -numcircles circlespacing, numcircles circlespacing}, 
    VectorPoints -> (Flatten[
       Table[RotationMatrix[\[Phi]/n].# & /@ pts2[[n]], {n, Length[pts2]}], 1])], {\[Phi], 0, 2 \[Pi], frameinterval}];

enter image description here

MelaGo
  • 9.1k
  • 1
  • 11
  • 26