Many options to place turtles around an “attractor” here’s two.
A
make the customers gently repulsed by each other, and gently attracted to a point a few degrees away supplier. Initially, place the customer next to the supplier. Each tick, all the customers do three things: 1 look for amother customer of that supplier that is too close. 2. If there is one, take a small step directly away from the customer. 2. If there is one, also Take a small step toward and slightly to the left of the supplier. Customer will promenade around the supplier.
B (most deterministic, fastest)
Decide that there are a certain number of “spaces” in each ring around the supplier, with more spaces in the rings as distance form the supplier increases. Perhaps ((int distance supplier) * 2 * pi / ( size * 2))
come up with a pair of formulas that calculates the correct distance and angle to place the Nth turtle to arrive at the supplier in the A(n) slot of the D(n) ring. I bet somebody out there figured this out already. Or just keep count. Like suppliers-own Num-customers, Ring#, RingHeading Initialize Ring# to 1 and RingSlice to (Ring# * 2 * pi ) / (size * 2) and RingHeading to 0
When a customer arrives do
Set heading [ ringangle ] of supplier
Jump [ ring# ] of supplier
Ask supplier
[ Set ringangle ringangle + ringslice
If ringangle >= 360 [ set ringangle 0 set ring# ring# + 1]
]