Я работаю в небольшой системе SVG, чтобы рисовать диаграммы (строка, столбец и пирог), и у меня возникают некоторые странные проблемы с круговой диаграммой ... Когда разделы на диаграмме меньше половины круга, то функция работает отлично, и все становится рисуется правильно (см рисунок ниже):Проблема с круговой диаграммой с SVG
Однако, когда часть пирога больше, чем половина окружности , часть рисуется неправильно, как если бы центр дуги перемещался (см. изображение ниже и обратите внимание, что красная часть является «пустым» кругом, где должны быть нарисованы части: я заполняю его красным цветом, чтобы проверить, правильно ли нарисованы части или нет):
Я использую функцию SVG «пути» с абсолютными параметрами, чтобы сделать каждую круговую часть. Я передаю некоторые параметры функции:
$ circleCenter_ соответствует положению X и Y центра круга. $ valPos [i] [0-1] содержит положение X и Y каждой точки треугольника, образованного центром и двумя точками на окружности (где часть должна заканчиваться).
Здесь «путь» Я использую:
<path d="M<?php echo $circleCenterX." ".$circleCenterY; ?>
L<?php echo $valPos[$i][0][0].",".$valPos[$i][0][1] ?>
A<?php echo $circleRadius.",".$circleRadius; ?> 0 0,1 <?php echo $valPos[$i][1][0].",".$valPos[$i][1][1]; ?> Z"
(...) />
Я не понимаю, почему это работает хорошо, когда часть меньше окружности пополам, и почему кажется, что центр является " перемещается ", когда часть больше половины круга. Конечно, переменные $ circleCenter никогда не изменяются внутри функции рисования пирога ...
Любые подсказки об этом?
Заранее благодарим за ваше время и усилия! :)