Draws a grid of snowflakes with random twig lengths.
Log in to post a comment.
// Forked from "Snowflake 003" by rupertxrussell
// https://turtletoy.net/turtle/8b68c0496b
// Forked from "Snowflake 001 " by rupertxrussell
// https://turtletoy.net/turtle/45cd645993
// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);
// Global code will be evaluated once.
const arms = 6; //min=4 max=10 step=1
const armLength = 10; //min=10 max=20 step=1
const numTwigs = 8; //min=3 max=10 step=1
const maxTwigLength = 3; //min=1 max=5 step=1
const minTwigLength = 1; //min=0 max=5 step=1
var twigLength;
const turtle = new Turtle();
let twig = [];
let XGap = 40; //min=20 max=50 step=1
let YGap = 40; //min=20 max=50 step=1
// calculate a random twig length for each twig
for(let j = 0; j < 200 - XGap ; j = j + XGap){
for(let k=0; k < 200 - YGap; k = k + YGap){
for (let nTwig = 0; nTwig <= numTwigs; nTwig ++){
twig[nTwig] = getRndInteger(minTwigLength, maxTwigLength);
}
for (let i = 0; i < arms; i++) {
turtle.penup();
turtle.goto(-100 + XGap + j, -100 + YGap + k);
turtle.pendown();
turtle.right(360/arms);
for(let n = 0; n < numTwigs /2 ; n ++){
turtle.forward(armLength / numTwigs);
turtle.right(60);
turtle.forward(twig[n]);
turtle.back(twig[n]);
turtle.left(60);
turtle.left(60);
turtle.forward(twig[n]);
turtle.back(twig[n]);
turtle.right(60);
turtle.forward(twig[n]);
turtle.right(120);
turtle.forward(twig[n+1]);
turtle.back(twig[n+1]);
turtle.left(120);
turtle.left(120);
turtle.forward(twig[n+1]);
turtle.back(twig[n+1]);
turtle.right(120);
turtle.forward(twig[n]);
turtle.back(twig[n]);
// turtle.right(360/arms);
// turtle.forward(twig[n]);
}
turtle.forward(twig[0]); //
}
}
}
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}