0

円グラフを描画する次の関数があります。pieValuesグラフ化する値のセットです。pieTotalはすべての値の合計でありcolors、円セグメントを塗りつぶす色の配列です

function drawPieChart()
{       
    for (var i = 0; i < pieValues.length; i++) 
    {
        ctx.fillStyle = colors[i];
        ctx.beginPath();
        ctx.moveTo(center[0],center[1]);
        // arc(x, y, radius, startAngle, endAngle, anticlockwise)
        ctx.arc(center[0],center[1],radius,lastPosition,lastPosition+(Math.PI*2*(pieValues[i]/pieTotal)),false);
        ctx.lineWidth = 1;     
        ctx.strokeStyle = 'black';
        ctx.stroke();
        ctx.lineTo(center[0],center[1]);
        ctx.fill();
        lastPosition += Math.PI*2*(pieValues[i]/pieTotal);

    }
}

各セグメントから線を引きたいのですが、その線上にセグメントの値を入れることを目的としています。

各セグメントに線を引く簡単な方法はありますか?

4

1 に答える 1

0

答えは

var fChartY = center[1];
var fChartX = center[0];

var fChartYTo = fChartY + (radius +20)*Math.sin(lastPosition + .5);
var fChartXTo = fChartX + (radius +20)*Math.cos(lastPosition + .5);     
drawLine(fChartX, fChartY, fChartXTo, fChartYTo);

円グラフのfChartY,fChartX中心で

于 2013-03-25T16:21:03.867 に答える