2017's total solar eclipse left me with a sense of awe that has never quite faded. I made a feeble attempt to recreate the totality in p5.js, and this turtle is a loose port of that code.
Original: twitter.com/mwcz/status/900546568662773762 & github.com/mwcz/kimo…ods/totality/main.js
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(-0.08);
// Global code will be evaluated once.
const t = new Turtle();
// RNG
// https://en.wikipedia.org/wiki/Middle-square_method#Middle_Square_Weyl_Sequence_PRNG
let x = 0
let w = 0
const s = 0xb5ad4eceda1ce2a9
const max = 2**32
function rand() {
x *= x
w += s
x += w
x = x>>32 | x<<32
return x / max + 0.5
}
// setup
const radius = 38
const maxlen = 300
t.radians()
// walk
function walk(i) {
// move along a circle perimeter
t.up()
t.goto(0, -25)
t.seth(i * rand() + 1.57)
t.fd(radius/2)
// draw a line tangent to the circle
const len = maxlen * rand()
t.right(Math.PI/2)
t.bk(len/2)
t.down()
t.fd(len)
t.up()
return i < 2210
}