gpt4 book ai didi

javascript - 在javascript中用圆弧绘制圆时如何删除html Canvas 中的半径线?

转载 作者:行者123 更新时间:2023-11-28 18:47:30 25 4
gpt4 key购买 nike

这是我绘制笑脸的 HTML 代码。我试了一下,发现多了一些线条。眼睛的半径位置有线条。也适合嘴巴。如何删除这三条半径线?

CLICK HERE FOR OUTPUT IMAGE

<html>
<head>

</head>
<body onclick="line();">
<canvas id="canvas" width="1000" height="500"></canvas>
<script>
function line()
{
var canvas = document.getElementById('canvas');
if(canvas.getContext)
{
var lines = canvas.getContext('2d');
lines.beginPath();
lines.arc(275,275,150,0,Math.PI*2,true);
lines.moveTo(280, 275);
lines.arc(275, 275, 100, 0, Math.PI, false);
lines.moveTo(210,220);
lines.arc(210, 220, 20, 0, Math.PI*2, true);
lines.moveTo(350, 220);
lines.arc(350, 220, 20, 0, Math.PI*2, true);
lines.stroke();
}
}
</script>
</body>
</html>


最佳答案

您的 moveTo() 调用将到达每个弧的中心点。弧实际上是从周边开始绘制的,因此在开始弧之前您的路径是从中心到周边。

要解决此问题,只需将 moveTo() 调用更改为圆弧上最右边的点(这是绘图开始的位置)。这是我的修复:

function line()
{
var canvas = document.getElementById('canvas');
if(canvas.getContext)
{
var lines = canvas.getContext('2d');
lines.beginPath();
lines.arc(275,275,150,0,Math.PI*2,true);
lines.moveTo(375, 275);
lines.arc(275, 275, 100, 0, Math.PI, false);
lines.moveTo(230,220);
lines.arc(210, 220, 20, 0, Math.PI*2, true);
lines.moveTo(370, 220);
lines.arc(350, 220, 20, 0, Math.PI*2, true);
lines.stroke();
}
}

关于javascript - 在javascript中用圆弧绘制圆时如何删除html Canvas 中的半径线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com