2011-12-18 47 views
14

我想这个解决方案非常简单,如果这是很明显的事先道歉,但我似乎无法弄清楚如何为两个不同的弧设置两个不同的fillStyles。 ..我只是想能够绘制不同的色彩圈。下面我将介绍如何使用canvas中的其他形状/绘图方法来执行此操作,但出于某种原因使用圆弧会将两个圆弧都设置为最后一个fillStyle。不同的fillStyle颜色在画布中的圆弧

ctx.fillStyle = "#c82124"; //red 
ctx.arc(15,15,15,0,Math.PI*2,true); 
ctx.fill(); 

ctx.fillStyle = "#3370d4"; //blue 
ctx.arc(580,15,15,0,Math.PI*2,true); 
ctx.fill(); 

回答

31

我想你错过了开始和结束的路径陈述。请尝试以下(我的作品中的jsfiddle,see here

ctx.fillStyle = "#c82124"; //red 
ctx.beginPath(); 
ctx.arc(15,15,15,0,Math.PI*2,true); 
ctx.closePath(); 
ctx.fill(); 

ctx.fillStyle = "#3370d4"; //blue 
ctx.beginPath(); 
ctx.arc(580,15,15,0,Math.PI*2,true); 
ctx.closePath(); 
ctx.fill(); 
+0

啊,当然!!!我认为这是明显的事情。出于某种原因,我认为你在绘制线条或曲线时只需要开始/关闭路径,但我想这总是必要的:) thnx太多了! – Nick 2011-12-18 04:20:48

1

注意路径是仅几何图形。您随时可以设置.fillStyle直到fill()

+0

'fillStyle'不是函数 – 1j01 2016-11-10 23:38:45

+0

哎呀!固定。谢谢! – 2016-12-04 16:11:18