const sideLength = this.sideLength || this.radius,
sides = this.sides,
turn = 360 / sides,
yPts = requestArray();
let currentY = 0,
myPath = ZERO_STR;
const v = requestVector({x: 0, y: -sideLength});
for (let i = 0; i < sides; i++) {
v.rotate(turn);
currentY += v.y;
yPts.push(currentY);
myPath += `${v.x.toFixed(1)},${v.y.toFixed(1)} `;
}
releaseVector(v);
const myMin = _min(...yPts),
myMax = _max(...yPts),
myYoffset = (((_abs(myMin) + _abs(myMax)) - sideLength) / 2).toFixed(1);
myPath = `m0,${myYoffset}l${myPath}z`;
releaseArray(yPts);
return myPath;
};