function polarToCartesian( centerX: number, centerY: number, radius: number, degreesAngle: number ): number[] { const radianAngle = (degreesAngle - 90) * Math.PI / 180 return [ centerX + radius * Math.cos(radianAngle), centerY + radius * Math.sin(radianAngle) ] } export function describe( x: number, y: number, radius: number, startAngle: number, endAngle: number ): string { const [startX, startY] = polarToCartesian(x, y, radius, endAngle) const [endX, endY] = polarToCartesian(x, y, radius, startAngle) const largeArcFlag = endAngle - startAngle <= 180 ? "0" : "1" return [ "M", startX.toString(), startY, "A", radius.toString(), radius.toString(), "0", largeArcFlag, "0", endX.toString(), endY.toString(), ].join(" ") }