我正在一个 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 变量在饼图绘制函数中永远不会被修改......
对此有任何线索吗?
提前感谢您的时间和精力!:)