Inspired by this post on Reddit, I wrote this little script to do the same thing. The circle is an illusion created by 100 straight-line tangents to an invisible circle. The tangents are created by drawing a chord in a larger concentric circle, and moving it’s endpoints around by equal increments 100 times. The larger circle’s circumference is defined by x=sin(t), y=cos(t), for t in the range 0 to 2*pi. So a chord’s endpoints will be defined by 2 different values of t.

  • Import turtle & math libraries
  • Set r (radius) to 400 px.
  • Set angular increment to a 100th of the circle, i.e. 2*pi/100
  • Initialise the plotting angle to to 0, and an offset to something in the range 0:2*pi
  • Make 100 steps around the circle
    • compute endpoints (x1,y1), (x2,y2) of a chord
    • lift pen and goto first endpoint; drop it & goto second
    • increment angle