4

我想创建一个基于某些值分为 6 个扇区的圆,扇区的角度取决于某些参数。参数值越大,圆的弧度越大。

我理解它的方式可以通过制作一个具有这 6 个不同部分的圆圈来构建,然后在顶部放置另一个 div,从而产生这种白色环形效果。我知道如何创建圆圈,但无法理解如何将其动态划分为不同颜色的扇区。

这甚至可以通过 CSS 实现吗,是否存在使用 Javascript 的解决方案。任何帮助将不胜感激。

圆圈

4

3 回答 3

2

HTML5 画布是要走的路。以下是一些学习链接:

W3C 规范

Kinetic.js

于 2013-05-04T20:04:16.260 回答
1

尝试这样的事情:http: //html5.litten.com/graphing-data-in-the-html5-canvas-element-part-iv-simple-pie-charts/

需要注意的是,我发现有一次通过google找到这个问题/答案:HTML5 Canvas pie chart

于 2013-05-04T20:03:31.623 回答
1
<!DOCTYPE html>
<html>
<head>
</head>
<body>

<canvas id="first" width="300" height="300" style="border:1px solid #000;">Your browser       does not support the HTML5 canvas tag
</canvas>

 <p>
  <select name="shapes" id="shapes">
     <option value="Square">Square</option>
     <option value="Circle">Circle</option>
  </select>
</p>
<p>
  <select name="bkcolour" id="bkcolour">
    <option>Red</option>
    <option>Black</option>
  </select>
</p>

<button onclick="drawshapes()">Try it</button>

<script>
    function drawTenSquare()
    {
   for(var i=0; i<10; i++)
   {
        var x=45;
    var y=25;
    var canvas =document.getElementById("first");
            var context=canvas.getContext("2d");
            context.fillStyle="#FF0000";
            context.fillRect(x+(i*15),y+(i*5),10,10);
   }
   }

   function drawTenCircle()
   {
    for(var i=0; i<10; i++)
    {
       var canvas=document.getElementById("first");
           var context=canvas.getContext("2d");
           context.beginPath();
           context.arc(95+(i*5),50+(i*2),40,0,2*Math.PI);
           context.stroke();
   }
  }

  function drawshapes()
  {
   var shape = document.getElementById("shapes")
   var index = shape.selectedIndex;
   var valindex = shape[index].value;

   if(valindex == "Square")
   {
    drawTenSquare();
   }
   else if(valindex == "Circle")
   {
    drawTenCircle();
   }
}
</script>

</body>
</html>
于 2013-05-04T20:14:51.003 回答