{
let nteeth = 9;
let degrees = 360 / nteeth / 2;
let outerRadius = 100;
let innerRadius = 85;
let toothAngle = 4;
let path = "";
let lineRadial = d3.lineRadial();
function toRadians(d) {
return (Math.PI / 180) * d;
}
let degreesRadian = toRadians(degrees);
let toothAngleRadian = toRadians(toothAngle);
for (let i = 0; i <= 360; i += degrees) {
let startAngle = toRadians(i);
let endAngle = startAngle + degreesRadian;
let arc = d3.arc()
let mode;
if ((i / degrees) % 2 == 0) {
arc.startAngle(startAngle).endAngle(endAngle)
.innerRadius(outerRadius).outerRadius(outerRadius);
path += arc();
} else {
let innerStartAngle = startAngle + toothAngleRadian;
let innerEndAngle = endAngle - toothAngleRadian;
path += lineRadial([[startAngle, outerRadius], [innerStartAngle, innerRadius]]);
arc.startAngle(innerStartAngle).endAngle(innerEndAngle)
.innerRadius(innerRadius).outerRadius(innerRadius);
path += arc();
path += lineRadial([[innerEndAngle, innerRadius], [endAngle, outerRadius]]);
}
}
return svgpath(path);
}