【发布时间】:2020-03-02 09:30:23
【问题描述】:
我正在尝试创建 11 个圆圈,它们通过线与中间圆圈连接。我正在尝试画圆圈。在这里我做了一些研发,但我无法制作线条。请帮我完成这个。
var canvas, ctx;
var circlePoints = [];
function createCanvasPainting() {
canvas = document.getElementById('myCanvas');
if (!canvas || !canvas.getContext) {
return false;
}
canvas.width = 600;
canvas.height = 600;
ctx = canvas.getContext('2d');
ctx.strokeStyle = '#B8D9FE';
ctx.fillStyle = '#B8D9FE';
ctx.translate(300, 250);
ctx.arc(0, 0, 50, 0, Math.PI * 2); //center circle
ctx.stroke();
ctx.fill();
var angleRotate = 0;
for (var i=0; i<11; i++) {
if (i > 0) {
angleRotate += 32.72;
}
lineToAngle(ctx, 0, 0, 200, angleRotate);
}
}
function lineToAngle(ctx, x1, y1, length, angle) {
angle *= Math.PI / 180;
var x2 = x1 + length * Math.cos(angle),
y2 = y1 + length * Math.sin(angle);
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.lineWidth = 1;
ctx.arc(x2, y2, 40, 0, Math.PI * 2);
ctx.fill();
ctx.stroke();
circlePoints.push({x: x2, y: y2});
// console.log(circlePoints);
}
createCanvasPainting();
<canvas id="myCanvas"></canvas>
【问题讨论】:
-
我没有得到这部分! “我正在尝试画圆圈。在这里我做了一些研发,但我无法画线”。
-
@Manjuboyz,如果你运行代码 sn-p 你可以看到连接到圆圈的线条是粗体的。
-
正确,所以你需要粗线还是细线?
-
嗨@Manjuboyz,lineWidth 不工作。
标签: javascript html canvas html5-canvas