【发布时间】:2013-09-06 12:31:14
【问题描述】:
我正在一个 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 变量在饼图绘制函数中永远不会被修改...
有什么线索吗?
提前感谢您的时间和精力! :)
【问题讨论】: