Manipulate[ Graphics[ With[{th = (d + rMin)/(2 n)}, Table[Rotate[{ {Red, Disk[c (i/(2 n)), Abs[1 - (1 - rMin) (i/(2 n))]]}, {Black, Disk[c (i/(2 n - 1)) + {0, d (-th + 2 th ((i + 1)/(2 n - 1)))}, Abs[1 - (1 - rMin) ((i + 1)/(2 n - 1))]]} }, 180 \[Degree] tw (i/(2 n - 1)), {0, 0}], {i, 0, 5 n, 2}] ], PlotRange -> All], {{n, 9, "rings"}, 1, 50, 1}, {{rMin, .02, "inner radius"}, 0, 1}, {{d, -5, "displacement"}, -5, 5}, {{tw, 0, "twist"}, 0, 50}, {{c, {0, 0}}, -{1, 1}, {1, 1}, ControlType -> Locator, Appearance -> None} ]