我正在使用一个SVG小系统来绘制图表(线条,条形图和饼图),我在饼图中遇到了一些奇怪的问题...当图表中的部分小于一半时圆形,功能完美,一切都正确绘制(见下图):
然而,当饼的一部分大于圆的一半时,该部分被绘制错误,就好像弧的中心被移动一样(参见下图并注意红色部分是“空的” “必须绘制部分的圆圈:我用红色填充它以检查是否正确绘制了部分:”
我正在使用SVG的“path”函数和绝对参数来绘制每个饼图部分。我将一些参数传递给函数:
$ 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"
(...) />
我不明白为什么当部分小于圆形半部分时它能正常工作,以及为什么当部分大于圆形半部分时,中心似乎“移动”了。当然$ pieCenter变量永远不会在饼图绘制函数中修改...
关于此的任何线索?
提前感谢您的时间和精力! :)
答案 0 :(得分:0)
如果部分的百分比大于1,则需要将大弧标志设置为1。 50%。