Snowflake 003

Draws a single Snowflake with random twig lengths

Log in to post a comment.

// 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 = 10; //min=4 max=10 step=1
const armLength = 55; //min=10 max=80 step=1
const numTwigs = 8; //min=3 max=8 step=1
const maxTwigLength = 14; //min=0 max=25 step=1
const minTwigLength = 0; //min=0 max=25 step=1
var twigLength;
const turtle = new Turtle();

let twig = [];

// calculate a random twig length for each twig

turtle.penup();
turtle.goto(-50,-50);
turtle.pendown();

for (let nTwig = 0; nTwig <= numTwigs; nTwig ++){
    twig[nTwig] = getRndInteger(minTwigLength, maxTwigLength);
}


for (let i = 0; i < arms ; i++) {
    turtle.penup();
    turtle.goto(-0,-0);
    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;
}