Chords 002

Draw n Chords
Optimised pen path
to reduce pen up travel
But this breaks the angle changing.

See: Chords (variation)
For version with angle changing.

Log in to post a comment.

// Forked from "Chords" by rupertxrussell
// https://turtletoy.net/turtle/7883f5ff09
// https://turtletoy.net/turtle/867faa2dad
// You can find the Turtle API reference here: https://turtletoy.net/syntax
// Released under the MIT licence 
// https://mit-license.org/
// you can use this for commercial gain if you like eg you can sell artworks with this image.

Canvas.setpenopacity(1);

// https://www.varsitytutors.com/intermediate_geometry-help/how-to-find-the-length-of-a-chord
// Chord length using perpendicular distance from the center = 2 × √(r2 − d2). 
// https://www.cuemath.com/geometry/Chords-of-a-circle/

const numLines = 160; // min=0 max=160 step=1 
const angle=0; // min=0 max=360 step=1 
const turtle = new Turtle();
let d = 0;
let d2 = d * d;
let r = 80;
let r2 = r * r;
let chordLength;

for(let n=0; n < numLines; n = n + 1){
  d = n -80;
  d2 = d * d;
  chordLength = 2 * Math.sqrt(r2 - d2);
  turtle.seth(angle); // this is broken at the moment
  if(isEven(n)){
      
    turtle.jump(-chordLength /2,-80 + n);
    turtle.forward(chordLength); // draw line left to right  
      
  } else { 
    turtle.jump(chordLength /2,-80 + n);
    turtle.back(chordLength); // draw line right to left 
  }
}

function isEven(number) {
    return number % 2 === 0;
}