HTML5画布弧形问题-弧形变形
我使用以下代码使用html5画布绘制一条弧 这是我的密码HTML5画布弧形问题-弧形变形,html,html5-canvas,Html,Html5 Canvas,我使用以下代码使用html5画布绘制一条弧 这是我的密码 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="1000" height="550" style="padding-top:20px;border:1px solid #d3d3d3;"> Your browser does not support the HTML5 canvas tag.</canvas>
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="1000" height="550" style="padding-top:20px;border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(293.5, 183.4375, 186.70352183177323, 4.71238898038469, 6.8067840827778845);
ctx.arc(293.5, 190.4375, 93.40238454336179, 6.8067840827778845, 4.71238898038469, true);
ctx.closePath();
ctx.strokeStyle = "white";
ctx.lineWidth = 1;
ctx.fillStyle = "red";
ctx.fill();
ctx.stroke();
</script>
</body>
</html>
您的浏览器不支持HTML5画布标记。
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.beginPath();
ctx.arc(293.5183.4375、186.70352183177323、4.71238898038469、6.8067840827778845);
ctx.arc(293.5190.4375,93.40238454336179,6.8067840827778845,4.71238898038469,真);
ctx.closePath();
ctx.strokeStyle=“白色”;
ctx.lineWidth=1;
ctx.fillStyle=“红色”;
ctx.fill();
ctx.stroke();
这就是圆弧的外观。如果仔细观察,外弧的左上端有一个略微平坦的表面。谁能告诉我为什么会这样?为什么弧线不平滑
第二个弧的人造丝大于中心y位置。它不属于canvas元素 您可以在此处看到更改:
此外,您的arcq没有相同的中心。如果它不是您想要的,请查看它。第二个圆弧的人造丝大于中心y位置。它不属于canvas元素 您可以在此处看到更改:
此外,您的arcq没有相同的中心。如果不是您想要的,请查看它。笔划一半在弧内,一半在弧外绘制 你的弧的一半外侧部分被画布的顶部切断 因此,如果希望笔划完全适合画布,请确保减去上下文线宽的一半
radius = radius - context.lineWidth/2;
因此,对于您的arc:
ctx.arc(
293.5, 183.4375,
186.70352183177323 - ctx.lineWidth/2, // subtract half linewidth
4.71238898038469, 6.8067840827778845
);
笔划一半在弧内,一半在弧外 你的弧的一半外侧部分被画布的顶部切断 因此,如果希望笔划完全适合画布,请确保减去上下文线宽的一半
radius = radius - context.lineWidth/2;
因此,对于您的arc:
ctx.arc(
293.5, 183.4375,
186.70352183177323 - ctx.lineWidth/2, // subtract half linewidth
4.71238898038469, 6.8067840827778845
);