This Answer uses the add-on Animation Nodes. I’m not gonna describe how to download and install it. That’s easily googleable.
We start by adding a Distribute Matrices node and set it to
That gives us an easy to control list of points on a spiral.
You can search for specific nodes by pressing CTRL + A. Use SHIFT + A to see a sorted list of all available nodes.
We don't have any geometry yet, so I added a 3D viewer node to see the result in the viewport.
We now need to add our arrow object to the Scene. I just added a simple cone, a more arrow-like shape will also work (it doesn't really matter). To use the same values as I, make sure your arrow points up (in +z direction).
We now need the following nodes:
Here we can select our arrow object. Connect the Vectors output from the spiral node to the instances input of the Instanced. AN automatically creates a Get Length node for us. We can now control the instances with the amount-slider of the spiral node.
We take the positions of each point of the Spline for now, compose Matrices and translate our objects with these.
Object Matrix Output
Spline From Points
We don't actually draw the spline as an object. But now that we have the spline, we have simple access to the tangents and can even distribute our objects more evenly.
uniform to distribute the arrows evenly or
resolution, to use the initial points.
Make sure to click the little arrow next to the drop down menu so the node works on multiple points instead of a single value. Connect the get length node to the amount input.
Connect the locations output to the translation input of the compose matrix node and the tangent output via a
Direction to Rotation node to the rotations input.
Point Distance Falloff
Creates a falloff for the rotation in relation to the origin 0/0/0. You can controll the size and width of the falloff here.
This checks, how much every arrow is affected by the falloff depending on its location. Make sure to check the list icon.
Multiply the Strength of the falloff with an angle of 90deg.
Set to degrees
combine the tangent rotation with the falloff rotation.
That's it. You can play arround with the values in the
Distribute Matrices and the
Point Distance Falloff Nodes to finetune the result you need.
Creating the same effect with concentric circles instead of a spiral is a bit more complicated. The
spiral redistribute note in combination with the
evaluate spline node does a lot of work for us: creates the vector list, handles the amount and the spacing of our objects, delivers useable tangents.
The only node that has some kind of built in concentric circle function is the circle mesh node. And with it we can create something like this:
A better apporoach is to create a loop to create individual circle splines. Its a bit more work, but not that bad. I'll just screenshot my nodetree for now. I'll add some description later if you have problems understanding whats goning on.
The loop addet to our old node tree:
The final result: