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


浙公网安备 33010602011771号