I want to make a program which can fill a 2D space with "pursuit polygons".
The following picture will help you understand better what I mean.
You can also look up "pursuit curves" or mice problem or watch this gif
What I've tried so far:
First I tried to produce these polygons by rotation of polygons
the square for example
data = {{0, 0}, {1, 0}, {1, 1}, {0, 1}, {0, 0}};
Graphics[{Table[{Scale[Rotate[Line[data], 3*x Degree], {x, x}]}, {x,
0, 20}]}]
then I decided to use spirals
I realised that instead of using n spirals for every n-polygon,
I can use only one(!) and produce the effect I want with "fine tuning"
here are the "pursuit polygons" that I made
Triangle:
a = 41.9;
b = 100;
W = Table[{t^2*Cos[a*t], t^2*Sin[a*t]}, {t, 0, b}];
AppendTo[W, W[[-4]]];
ListPlot[W]
Graphics[Line[W]]
Square:
S = Table[{t^2*Cos[42.4*t], t^2*Sin[42.4*t]}, {t, 0, 160}];
AppendTo[S, S[[-4]]];
Graphics[Line[S]]
Pentagon
P = Table[{t^2*Cos[45.251*t], t^2*Sin[45.251*t]}, {t, 0, 220}];
AppendTo[P, P[[-5]]];
Graphics[Line[P]]
Then I tried to put all these together by rotating and scaling...
(but I'm not satisfied with the result)
notice that for every polygon I use also the "anti-clockwise" version of the polygon, which produces interesting results
T = Table[{t^2*Cos[41.9*t], t^2*Sin[41.9*t]}, {t, 0, 100}];
AppendTo[T, T[[-4]]]; (*Triangle*)
S = Table[{t^2*Cos[42.4*t], t^2*Sin[42.4*t]}, {t, 0, 160}];
AppendTo[S, S[[-4]]]; (*square*)
S1 = Table[{t^2*Cos[-42.4*t], t^2*Sin[-42.4*t]}, {t, 0, 160}];
AppendTo[S1, S1[[-4]]]; (*Anti-clockwise Square*)
P = Table[{t^2*Cos[45.251*t], t^2*Sin[45.251*t]}, {t, 0, 220}];
AppendTo[P, P[[-5]]]; (*Pentagon*)
P1 = Table[{t^2*Cos[-45.251*t], t^2*Sin[-45.251*t]}, {t, 0, 220}];
AppendTo[P1, P1[[-5]]]; (*Anti-clockwise Pentagon*)
Graphics[{Translate[
Rotate[Scale[Line[(T)], {2.09, 2.09}], -67 Degree], {29500, 3800}],
Rotate[Scale[Line[S + 0], {1, 1}], -30 Degree],
Translate[
Rotate[Scale[Line[(S1)], {.98, .98}], -87.5 Degree], {41000,
24700}],
Translate[
Rotate[Scale[Line[P1], {.605, .665}], -20.5 Degree], {76500,
6500}], Scale[
Translate[
Rotate[Scale[
Line[(T)], {1.2, 1.7}], -108 Degree], {50900, -12500}], {1.91,
1.31}],
Translate[
Rotate[Scale[Line[(P)], {.525, .665}], -64 Degree], {3000, 36000}],
Translate[
Rotate[Scale[Line[(P)], {.61, .61}], -87 Degree], {59000, 58000}],
Translate[
Rotate[Scale[Line[(T)], {2.1, 1.8}], 12 Degree], {82500, 39500}],
Translate[
Rotate[Scale[Line[(T)], {2.3, 1.9}], -133 Degree], {32000,
67000}]}]
Can you find a way to divide and fill any given space with pursuit polygons?
The result would look better if this could work with ANY convex polygon and not only the regular polygons that I used...