[英]How to draw in canvas 2D this shape and fill it with color?
弧并不总是顺时针绘制。 .arc
的第六个参数是一个布尔值,当为真时会使弧逆时针绘制。
但是,您还需要反转开始和结束角度,否则弧将尝试长途跋涉:
var canvas = document.getElementById('c'); var ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.arc(20, 20, 40, 30 * Math.PI / 180, 80 * Math.PI / 180); ctx.arc(20, 20, 150, 80 * Math.PI / 180, 30 * Math.PI / 180, true); ctx.closePath(); ctx.lineWidth = 3; ctx.stroke(); ctx.fillStyle = '#e0e0ff'; ctx.fill();
<canvas id="c" width="200" height="200" />
为什么不使用lineWidth
属性来使弧更粗。 在这种情况下,您只需要一次对arc
调用:
let canvas = document.getElementById("canvas"), context = canvas.getContext("2d"); context.beginPath(); context.arc(20, 20, 40, 0, Math.PI / 4); context.lineWidth = 15; context.stroke();
<canvas id="canvas"></canvas>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.