好吧,我有這一段代碼,試圖創造在畫布上支離破碎的「甜甜圈」形:Canvas arc()不接受變量?
for (var i = 0; i < numberOfItems; i++) {
var endingAngle = (startingAngle + itemLength) % (2 * Math.PI);
menuItem[i] = new Kinetic.Shape({
sceneFunc: function (context) {
context.beginPath();
context.arc(containerCenter, containerCenter, circleRadius, startingAngle, endingAngle, false);
context.lineTo(containerCenter + smallCircleRadius * Math.cos(endingAngle), containerCenter + smallCircleRadius * Math.sin(endingAngle));
context.arc(containerCenter, containerCenter, smallCircleRadius, endingAngle, startingAngle, true);
context.lineTo(containerCenter + circleRadius * Math.cos(startingAngle), containerCenter + circleRadius * Math.sin(startingAngle));
context.closePath();
context.fillStrokeShape(this);
},
fill: '#00ff00',
stroke: 'black',
strokeWidth: 1
});
layer.add(menuItem[i]);
startingAngle = endingAngle;
}
startingAngle從該片斷的外部設定和基本無關(可爲任意值),numberOfItems是段的數量,itemLength每個片段的長度以圓周的百分比表示,circleRadius和smallCircleRadius分別表示圓環形狀的外圈和內圈的半徑。
現在,當我嘗試按原樣輸入時,它不會在畫布上繪製任何東西,只是一條線,它似乎是第一個片段的左側線或右側線最後一個片段 - 儘管這是不相關的。如果我將代碼更改爲常量值而不是startingAngle和endingAngle,它將起作用,並將其正確繪製。這裏可能是什麼問題?
祝福你,我會永遠卡在這裏。 – user3515633