canvas绘制圆角矩形

效果图
在这里插入图片描述

代码实现

	/**
     * 
     * @param {*} x 起始x坐标
     * @param {*} y 起始y坐标
     * @param {*} width 矩形宽度
     * @param {*} height 矩形高度
     * @param {*} r 矩形圆角
     * @param {*} bgcolor 矩形填充颜色
     * @param {*} lineColor 矩形边框颜色
     */
    draw(ctx, x, y, width, height, r, bgcolor, lineColor) {
      ctx.beginPath();
      ctx.moveTo(x + r, y);
      ctx.lineTo(x + width - r, y);
      ctx.arc(x + width - r, y + r, r, Math.PI * 1.5, Math.PI * 2);
      ctx.lineTo(x + width, y + height - r);
      ctx.arc(x + width - r, y + height - r, r, 0, Math.PI * 0.5);
      ctx.lineTo(x + r, y + height);
      ctx.arc(x + r, y + height - r, r, Math.PI * 0.5, Math.PI);
      ctx.lineTo(x, y + r);
      ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5);
      ctx.fillStyle = bgcolor;
      ctx.strokeStyle = lineColor;
      ctx.fill();
      ctx.stroke();
      ctx.closePath();
    },