无法用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变量在饼图绘制函数中永远不会被修改...

有关这个的任何线索?

预先感谢您的时间和精力! :)


如果该部分的百分比大于50%,则需要将大弧标志设置为1。

链接地址: http://www.djcxy.com/p/76491.html

上一篇: Trouble drawing a pie chart with SVG

下一篇: How to make Raphael to work with IE8 and lesser versions?