Ваша функция polarToCartesian преобразует полярные координаты в декартовы.
Не думаю, что это то, что вам нужно, но вы бы поместили следующие аргументы в console.log для startAngle, endAngle
0, 45 | 45, 90 | 90, 135 | 135, 180 | 180, 225 | 225, 270 | 270, 315 | 315, 360 |.
Аргументы x и y необходимо снова вычислить как разные координаты в декартовом координатном пространстве. Это зависит от того, где начинаются ваши первые координаты. Рисуя все, что зависит от кругового движения, нужно подумать о том, где находится центр круга. Координаты для центра круга лучше всего описать как 0, 0, а затем после перемещения круга в нужное место. Координаты зависят от радиуса, у вас есть 25. Поэтому я бы предложил:
0, -25 | 17,677, -17,677 | 25, 0 | 17,677, 17,677 | 0, 25 | -17,677, 17,677 | -25, 0 | -17.677, 17.677
17.677 получается по теореме Пифагора a² + b² = c².
И если вы знаете радиус, потому что прямоугольный треугольник может быть сделан из радиуса (как гипотенуза), вы получите треугольник с равными сторонами с гипотенузой в 45 °.
Таким образом, длина одна из равных сторон √ (с² / 2).
function equalSideLength(radius){
return Math.sqrt(Math.pow(radius, 2)/2);
}
Чтобы проиллюстрировать пример выходных данных, сначала просто показав четверти, а затем восьмые части круга, я бы предложил следующий план, добавив атрибут штрихов по мере необходимости и установив заполнение в ноль (пробелы добавлены для удобочитаемость и масштаб добавить, чтобы увидеть это!). И не забудьте перевести весь рисунок туда, где он вам нужен.
<svg width="1000" height="1000">
<g transform="translate(100 100) scale(50)">
<path d="M0 0 L 0 -2 A2 2 0 0 1 2 0 " fill="red"/>
<path d="M0 0 L 2 0 A2 2 0 0 1 0 2" fill="yellow"/>
<path d="M0 0 L 0 2 A2 2 0 0 1 -2 0" fill="pink"/>
<path d="M0 0 L-2 0 A2 2 0 0 1 0 -2" fill="green"/>
</g>
<g transform="translate(400 100) scale(50)">
<path d="M0 0 L 0 -2 A2 2 0 0 1 1.4 -1.4" fill="red"/>
<path d="M0 0 L 1.4 -1.4 A2 2 0 0 1 2 0 " fill="yellow"/>
<path d="M0 0 L 2 0 A2 2 0 0 1 1.4 1.4" fill="pink"/>
<path d="M0 0 L 1.4 1.4 A2 2 0 0 1 0 2 " fill="green"/>
<path d="M0 0 L 0 2 A2 2 0 0 1 -1.4 1.4" fill="orange"/>
<path d="M0 0 L-1.4 1.4 A2 2 0 0 1 -2 0 " fill="purple"/>
<path d="M0 0 L-2 0 A2 2 0 0 1 -1.4 -1.4" fill="blue"/>
<path d="M0 0 L-1.4 -1.4 A2 2 0 0 1 0 -2 " fill="grey"/>
</g>
<svg>