en.wikipedia.org/wiki/ulam_spiral
Visualising a concept by Jacob Yatsko
youtube.com/watch?v=inrysausfpg&t=462s
Ulam Spiral Root Lines 🌀 (variation)
Ulam Spiral Root Lines 🌀 (variation)
Ulam Spiral Root Lines 🌀 (variation)
Log in to post a comment.
// Forked from "Ulam Spiral 🌀" by Jurgen
// https://turtletoy.net/turtle/1556682e50
const zoom = 8; //min=.2 max=20 step=.1
const continueTo = 840; //min=100 max=2300 step=1
const opacity = .05; //min=.01 max=1 step=.01
const powerOfOneOver = 2; //min=1 max=5 step=.1
// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(-opacity);
// Global code will be evaluated once.
const turtle = new Turtle();
function* step(s, steps = 0) {
while(++steps) {
for(let i = 0; i < 2; i++) {
for(let j = 0; j < steps; j++) yield turtle.forward(s);
turtle.left(90);
}
}
}
const stepIterator = step(zoom);
const grid = [];
turtle.up();
do {
grid.push(turtle.pos());
stepIterator.next();
} while(grid[grid.length-1][0] < continueTo)
turtle.down();
// The walk function will be called until it returns false.
function walk(i) {
turtle.jump(grid[i]);
const root = i**(1/powerOfOneOver);
turtle.goto(lerp2(grid[root|0], grid[(root|0)+1], root - (root|0)));
return i < grid.length - 1;
}
function lerp2(a,b,t) { return [a[0]*(1-t) + b[0]*t, a[1]*(1-t) + b[1]*t]; }