Home > Uncategorized > String Around A Circle

String Around A Circle

This post is just a placeholder:

arc[t_] := {Sin[t], 1 - Cos[t]}
line[s_] := 
 Module[{r}, 
  r = t /. 
    Quiet@Solve[{Norm[t {Cos[s], Sin[s]}]} == 2 Pi - s && t > 0, 
       t][[1]];
  {Red, Circle[{0, 1}, 1], Black, 
   Circle[{0, 1}, 1, {3 Pi/2, 3 Pi/2 + s}], 
   Line[{arc[s], arc[s] + r {Cos[s], Sin[s]}}]}]


The above was unnecessarily complex. Motivated by this question:

func[r_, a_, d_] := 
 If[d <= r a, r {Sin[d/r], -Cos[d/r]}, 
  r {Sin[a], -Cos[a]} + (d - r a) {Cos[a], Sin[a]}]

Using some points from the post:

pts = {{1.7320508075688772`, 0.`}, {3.4641016151377544`, 
    0.`}, {5.196152422706632`, 0.`}, {6.928203230275509`, 0.`}};
ds = Norm[# - pts[[1]]] & /@ pts;
rd = ds[[-1]]/(2 Pi);
cntr = {pts[[1, 1]], rd};
Manipulate[
 ParametricPlot[cntr + func[rd, q, x], {x, 0, 2 Pi rd}, 
  Epilog -> {Circle[cntr, rd], Red, 
    Point[Table[cntr + func[rd, q, j], {j, ds}]]}, 
  PlotRange -> {{-4, 7}, {-2, 7}}], {q, 0, 2 Pi - 0.1}]

Wrapping points around circle:

Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a comment