【问题标题】:Trouble drawing a pie chart with SVG使用 SVG 绘制饼图时遇到问题
【发布时间】: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 变量在饼图绘制函数中永远不会被修改...

有什么线索吗?

提前感谢您的时间和精力! :)

【问题讨论】:

    标签: html svg charts


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2021-12-17
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      相关资源
      最近更新 更多