canvas绘制圆角矩形

 

canvas绘制圆角矩形

Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实我们可以将圆角矩形分为四段,可以通过使用arcTo来实现

我们假设起点为x,y.绘制的矩形宽高为w,h.圆角的半径为r;所以将起点设置在(x+r,y)处,然后acrTo(x+w,y,x+w,y+h,r)其它线段以此类推

canvasId是canvas的id,x,y是矩形的起点;w,h是矩形的宽高;r是圆角矩形的半径.

<body>
    <canvas id = "palette" width="300px" height="200px">
        您的浏览器不支持Canvas标签,请升级或更换浏览器
    </canvas>
</body>
</html>
<script>
    var roundRectangle = document.querySelector("#palette").getContext("2d");
    CanvasRenderingContext2D.prototype.roundRect = function (x, y, w, h, r) {
        if (w < 2 * r) r = w / 2;
        if (h < 2 * r) r = h / 2;
        this.beginPath();
        this.moveTo(x+r, y);
        this.arcTo(x+w, y, x+w, y+h, r);
        this.arcTo(x+w, y+h, x, y+h, r);
        this.arcTo(x, y+h, x, y, r);
        this.arcTo(x, y, x+w, y, r);
        this.closePath();
        return this;
    }
    roundRectangle.lineWidth = 4;
    roundRectangle.strokeStyle = "#0000ff";
    roundRectangle.roundRect(40,40,200,120,30).stroke();
</script>

  效果如下图:

 

 

 如有疑问,请加qq群讨论:910316886

 

 

 

 

 

posted @ 2022-11-22 11:43  web与webGL  阅读(680)  评论(0编辑  收藏  举报