zyzth1314 发表于 2019-12-30 12:31:05

求助大佬关于canvas的问题

<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
        <title></title>
        <style>
                canvas {
                        border: 1px solid gray;
                }
        </style>
</head>
<body>
        <canvas width="640" height="480"></canvas>
        <br><button>gogogo</button>
        <script>
                let circles = [];
                let id = null;
                const cv = document.querySelector("canvas");
                const gc = cv.getContext("2d");
                gc.lineWidth = 5;
                gc.strokeStyle = "blue";
                const bt = document.querySelector("button");
                bt.addEventListener("click", function () {
                        window.x = parseInt(Math.random() * 640);
                        window.y = parseInt(Math.random() * 480);
                        circles.push({locaX: x,locaY: y});
                        if (id == null) {
                                id = setInterval(draw1, 1);
                        }
                });
                function draw1() {
                        circles.forEach(function (e) {
                                gc.clearRect(e.locaX - 46, e.locaY - 46, 90, 90);
                                gc.beginPath();
                                gc.arc(e.locaX, e.locaY, 40, 0, 2 * Math.PI);
                                gc.stroke();
                                e.locaX += 1;
                                e.locaY += 1;
                        })
                }
        </script>
</body>
</html>

我做的是点击按钮出现圆然后往右下走 但是清除圆圈做的不行,那个清除圆圈只能是矩形,,然后圆圈多了重叠在一起就会出现没清理干净的情况,请问有什么好的解决方法吗

zyzth1314 发表于 2019-12-30 12:32:53

即使找了网上那些分成细小矩形去清除圆圈的 放大后也还会残留锯齿,,,请教最好的方法是什么

zyzth1314 发表于 2019-12-30 12:37:09

就是只想清除圆圈的那外面有颜色一圈 内部也清除了的话,和别的圆叠加在一起就,,
页: [1]
查看完整版本: 求助大佬关于canvas的问题