### Sigmund-Gossembrot 001

// https://daten.digitale-sammlungen.de/~db/0006/bsb00064971/images/index.html?seite=111&fip=193.174.98.30
// https://blogmymaze.wordpress.com/2019/05/05/sigmund-gossembrot-1/
// Released under
// Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

Canvas.setpenopacity(1);

// Global code will be evaluated once.
const turtle = new Turtle();

const h = 0;
const k = 0;
const Pointradius = 1; // //min=1 max=120 step=1
const circleRadius =30; // //min=29 max=33 step=1
const rotate = 0;

const xPoint = [];
const yPoint = [];

var x;
var y;
const radius=31; //  // min=10 max=90 step=1
const endPointRadius=1; // //  min=0.5 max=3 step=0.1

let degree = 91;

// inner star
points(5,31, 0);

// calculate spokes
points(5,40, 45); // 2
points(5,76, 50); // 6
points(5,49, 55); // 3
points(5,85, 60); // 7
points(5,58, 65); // 4
points(5,94, 70); // 8

// draw the spokes
turtle.jump(xPoint[4], yPoint[4]);
turtle.goto(xPoint[1], yPoint[1]);

turtle.jump(xPoint[1], yPoint[1]);
turtle.goto(xPoint[3], yPoint[3]);

turtle.jump(xPoint[3], yPoint[3]);
turtle.goto(xPoint[0], yPoint[0]);

turtle.jump(xPoint[0], yPoint[0]);
turtle.goto(xPoint[2], yPoint[2]);

turtle.jump(xPoint[2], yPoint[2]);
turtle.goto(xPoint[4], yPoint[4]);

centeredArc(0, 0,31, 181, -167,5 ,6); //1

centeredArc(0, 0,40, 170, -156, 7, 8); //2

centeredArc(0, 0,49, 161, 43, 9, 10); //3.1

centeredArc(0, 0, 49, 28, -99, 11, 12)  //3.2

centeredArc(0, 0, 49, -115.5, -171, 13, 14)  //3.3 - 115 -171

// join end 1 with end 3.3
turtle.goto(xPoint[6],yPoint[6]);

centeredArc(0, 0,58, 172.45, 114, 15, 16); //4.1

// join start 4.1 with end 3.3
turtle.jump(xPoint[15],yPoint[15]);
turtle.goto(xPoint[7],yPoint[7]);

centeredArc(0, 0,58, 102, 51, 17, 18); //4.2

centeredArc(0, 0,58, 18, -89, 19, 20); //4.3

centeredArc(0, 0,58, -121.5, -179, 21, 22); //4.4

centeredArc(0, 0,67, 181, 121, 23, 24); //5.1

centeredArc(0, 0,67, 97, 42, 25, 26); //5.2

centeredArc(0, 0,67, 30, -30, 27, 28); //5.3

centeredArc(0, 0,67, -40, -101, 29, 30); //5.4

centeredArc(0, 0,67, -114, -174, 31, 32); //5.5

// Joining ends
turtle.jump(xPoint[10],yPoint[10]);
turtle.goto(xPoint[26],yPoint[26]);

turtle.jump(xPoint[11],yPoint[11]);
turtle.goto(xPoint[27],yPoint[27]);

turtle.jump(xPoint[12],yPoint[12]);
turtle.goto(xPoint[30],yPoint[30]);

turtle.jump(xPoint[13],yPoint[13]);
turtle.goto(xPoint[31],yPoint[31]);

centeredArc(0, 0,76, 174, 113, 33, 34); //6.1
turtle.jump(xPoint[16],yPoint[16]);
turtle.goto(xPoint[34],yPoint[34]);

centeredArc(0, 0,76, 103.5, -24, 35, 36); //6.2
turtle.jump(xPoint[17],yPoint[17]);
turtle.goto(xPoint[35],yPoint[35]);

centeredArc(0, 0,76, -48, -169, 37, 38); //6.3

centeredArc(0, 0,85, 168, -31, 39, 40); //7.1
turtle.jump(xPoint[28],yPoint[28]);
turtle.goto(xPoint[40],yPoint[40]);

centeredArc(0, 0,85, -39.5, -175, 41, 42); //7.2  -43, -174,
turtle.jump(xPoint[29],yPoint[29]);
turtle.goto(xPoint[41],yPoint[41]);

turtle.jump(xPoint[32],yPoint[32]);
turtle.goto(xPoint[42],yPoint[42]);

centeredArc(0, 0,94, 175, -179, 43, 44); //8.1
turtle.jump(xPoint[33],yPoint[33]);
turtle.goto(xPoint[43],yPoint[43]);

//spokes
turtle.jump(xPoint[48],yPoint[48]);
turtle.goto(xPoint[53],yPoint[53]); //spoke 2

turtle.jump(xPoint[72],yPoint[72]);
turtle.goto(xPoint[67],yPoint[67]); //spoke 4

turtle.jump(xPoint[46],yPoint[46]);
turtle.goto(xPoint[51],yPoint[51]); //spoke 5

turtle.jump(xPoint[59], yPoint[59]);
turtle.goto(xPoint[64], yPoint[64]);

// center north south line
turtle.jump(xPoint[0], yPoint[0]);
turtle.goto(xPoint[70], yPoint[70]);

// Plot lines out from star corners
turtle.jump(xPoint[0],yPoint[0]);

// Draw n points around a circle
for ( i = 0; i < nPoints; i++) {

xPoint[arrayStart + i] = x;
yPoint[arrayStart + i] = y;

degree = degree + 360 / nPoints;
}
}

return degrees * (Math.PI / 180);
}

turtle.seth(0);
}

function centeredArc(x,y, radius, startAngle, endAngle, startXY, endXY) {
turtle.seth(0);