에 스트로크 폭을 확대하기 나는 jsfiddle 다음 : http://jsfiddle.net/RgLAU/1/HTML 캔버스 도넛 차트
와 도넛 차트를했다. 현재 도넛 형 차트는 도넛 형의 각 부분을 흰색으로 구분하여 매우 작습니다. 예를 들어, 아래 그림에서, 흰색 스트로크로 표시된 도넛 형 부분이 6 개 있다는 것을 간신히 확인할 수 있습니다.
내 문제는 내가 휴식이 조금 더 같이하도록, 전체 차트의 두께를 증가시키지 않고 그 라인의 두께를 증가 할 것입니다 :
여기 내 JS입니다. 어떤 도움을 크게 감사드립니다. :
var donutVm = this;
donutVm.donutHeight = donutVm.donutHeightConfig || 150;
donutVm.donutWidth = donutVm.donutWidthConfig || 150;
donutVm.donutRadius = donutVm.donutRadiusConfig || 50;
if (CommunityConfig.conversionContestActionId) {
ActionService.get({ id: CommunityConfig.conversionContestActionId, type: 'action' }).$promise.then(function (response) {
if (CommunityConfig.conversionContestConversionCountTarget) donutVm.totalConversions = CommunityConfig.conversionContestConversionCountTarget;
var action = response;
if (action.linkReference) {
action.getContextFromLinkReference(action.linkReference, function (error, context) {
var conversionsMade = context.conversionCount;
var canvas = document.getElementById("chart");
var chart = canvas.getContext("2d");
function drawDonutChart(canvas)
{
donutVm.x, donutVm.y, donutVm.radius, donutVm.lineWidth, donutVm.strokeStyle, donutVm.from, donutVm.to = null;
donutVm.set = function(x, y, radius, from, to, lineWidth, strokeStyle) {
donutVm.x = x;
donutVm.y = y;
donutVm.radius = radius;
donutVm.from = from;
donutVm.to = to;
donutVm.lineWidth = lineWidth;
donutVm.strokeStyle = strokeStyle;
};
donutVm.draw = function(data) {
canvas.beginPath();
canvas.lineWidth = donutVm.lineWidth;
canvas.strokeStyle = donutVm.strokeStyle;
canvas.arc(donutVm.x, donutVm.y, donutVm.radius, donutVm.from, donutVm.to);
canvas.stroke();
var numberOfParts = data.numberOfParts;
var parts = data.parts.pt;
var colors = data.colors.cs;
var df = 1.5 * Math.PI;
for(var i = 0; i < numberOfParts; i++) {
canvas.beginPath();
canvas.strokeStyle = colors[i];
canvas.arc(donutVm.x, donutVm.y, donutVm.radius, df, df + (Math.PI * 2) * (parts[i]/100));
canvas.stroke();
df += (Math.PI * 2) * (parts[i]/100);
}
}
}
var sections = {"pt": []};
var sectionColors = {"cs": []};
var emptyColor = "lightgrey";
var madeColor = CommunityConfig.styles.buttonColor;
var sectionPercentage = 100/donutVm.totalConversions;
if (conversionsMade == donutVm.totalConversions) {
for (var y = 0; y < conversionsMade; y++) {
sectionColors.cs.push(emptyColor);
}
} else {
for (var y = 0; y < conversionsMade; y++) {
sectionColors.cs.push(madeColor);
}
while (sectionColors.cs.length < donutVm.totalConversions) {
sectionColors.cs.push(emptyColor);
}
}
for (var i = 0; i < donutVm.totalConversions; i++){
sections.pt.push(sectionPercentage);
}
var data = {
numberOfParts: donutVm.totalConversions,
parts: sections,
colors: sectionColors
};
var drawDonut = new drawDonutChart(chart);
donutVm.set(canvas.width/2, canvas.height/2, donutVm.donutRadius, 0, Math.PI*2, 10, "#fff");
donutVm.draw(data);
donutVm.donutFinished = true;