Log in to post a comment.

// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);

// Global code will be evaluated once.
const turtle = new Turtle();
const scale = 10;
const R = 1;
const outline = 1; //min=0 max=1 step=1 (No, Yes)

// containing rectangle

if(outline ==1){

turtle.penup();
turtle.goto(-7.5 * scale,7.0 * scale);
turtle.left(90);
turtle.pendown();
turtle.forward(14.5 * scale);
turtle.right(90);
turtle.forward(15 * scale);
turtle.right(90);
turtle.forward(14.5 * scale);
turtle.right(90);
turtle.forward(15 * scale);

}

/* P1
turtle.penup();
turtle.goto(-3.5 * scale,4.0 * scale);
turtle.pendown();
turtle.circle(1);

// P2
turtle.penup();
turtle.goto(0.5 * scale,4.0 * scale);
turtle.pendown();
turtle.circle(1);

// P3
turtle.penup();
turtle.goto(-3.5 * scale,0 * scale);
turtle.pendown();
turtle.circle(1);


// P4
turtle.penup();
turtle.goto(-0.5 * scale,0.0 * scale);
turtle.pendown();
turtle.circle(1);

// P5
turtle.penup();
turtle.goto(0.5 * scale,0.0 * scale);
turtle.pendown();
turtle.circle(1);
*/

// line to p1
// P1
turtle.penup();
turtle.goto(-3.5 * scale,7.0 * scale);
turtle.pendown();
turtle.setheading(270);
turtle.forward(3 * scale);

// P3 R4 outer bottom left arc 
turtle.setheading(180);
turtle.circle(R * 4 * scale, 90);

// P4 R7.5 outer top left arc 
turtle.seth(-90);
turtle.circle(R * 7.5 * scale, 180);

// P5 R7.0 outer top left arc 
turtle.seth(90);
turtle.circle(R * 7.0 * scale, 90);

// P2 R3.0 outer bottom right arc 
turtle.seth(180);
turtle.circle(R * 3.0 * scale, 90);

// end of outer loop

// start of loop 2
// P1 R1.0 inner 1  arc 
turtle.seth(90);
turtle.circle(R * 1.0 * scale, -90);

// P3 R4 inner 1  arc 
turtle.setheading(180);
turtle.circle(R * 3 * scale, 90);

// P4 R3 inner 1  arc 
turtle.seth(-90);
turtle.circle(R * 6.5 * scale, 180);

// P5 R6.0 inner 1  arc 
turtle.seth(90);
turtle.circle(R * 6.0 * scale, 90);

// P2 R2.0 inner 1 bottom right arc 
turtle.seth(180);
turtle.circle(R * 2.0 * scale, 90);
// end of inner 1 loop


// start of loop 3
// P1 R2.0 inner 2  arc 
turtle.seth(90);
turtle.circle(R * 2.0 * scale, -90);

// P3 inner 2  arc 
turtle.setheading(180);
turtle.circle(R * 2 * scale, 90);

// P4 inner 2  arc 
turtle.seth(-90);
turtle.circle(R * 5.5 * scale, 180);

// P5 inner 2  arc 
turtle.seth(90);
turtle.circle(R * 5.0 * scale, 90);
// end of inner 2loop


// a
turtle.seth(180);
turtle.circle(R * 1.0 * scale, 60);

// start inner 3rd arc
// P2 inner 1 bottom right arc 
// arc 14
turtle.penup();
turtle.goto(0.5 * scale, 5 * scale);
turtle.pendown();
turtle.seth(180);
 turtle.circle(R * 1 * scale, 180);


// arc 15
turtle.seth(180);
turtle.circle(R * 3.0 * scale, -90);

// arc 16
turtle.seth(90);
turtle.circle(R * 3.5 * scale, -180);

// end of inner 3rd loop ends at p3

// start of inner 6
// arc 17
turtle.penup();
turtle.goto(-1.5 * scale, 4 * scale);
turtle.pendown();
turtle.seth(270);
turtle.circle(R * 2 * scale, 90);


// P5 inner 2  arc 
// arc 18
turtle.seth(180);
turtle.circle(R * 2.0 * scale, -90);


// P5 inner 5  arc 
// arc 19
turtle.seth(90);
turtle.circle(R * 2.5 * scale, -180);


// P5 inner 5  arc 
// arc 20
turtle.seth(90);
turtle.circle(R * 1 * scale, 180);


// P3 inner 3 arc 
// arc 21
turtle.circle(R * 4.5 * scale, 180);

// P5 inner 3 arc 
// arc 22
turtle.circle(R * 4.0 * scale, 90);
// ends at p2

// arc 23
turtle.penup();
turtle.goto(-3.5 * scale, 2.0 * scale);
turtle.pendown();
turtle.seth(180);
turtle.circle(R * 2 * scale, -90);

// arc 24
turtle.seth(-90);
turtle.circle(R * 1.5 * scale, 180);

// arc 25
turtle.seth(90);
turtle.circle(R * 1 * scale, 180);

// arc 26
turtle.seth(270);
turtle.circle(R * 0.5 * scale, 180);

// vertical final  line
turtle.penup();
turtle.goto(-2.5 * scale,7.0 * scale);
turtle.pendown();
turtle.seth(270);
turtle.forward(3 * scale);


function cir(x,y,radius){
    
    turtle.penup();
    turtle.goto(x  , y - radius );
    turtle.pendown();
    turtle.circle(radius);  // 
   
    
}