2011-12-18 6 views
14

Я предполагаю, что решение этого очень просто и извиниться заранее, если это болезненно очевидно, но я не могу понять, как установить два разных fillStyles для двух разных дуг. .. Я просто хочу рисовать разные цветные круги. Ниже у меня есть то, как я обычно делаю это с другими формами/методами рисования в холсте, но по какой-то причине с дугами он устанавливает обе дуги в последний 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

Ах, конечно !!! Я подумал, что это нечто очевидное. По какой-то причине я думал, что вам нужно только начать/закрытьPath, когда вы рисуете линии или кривые, но я думаю, это всегда необходимо :) Thnx так много! – Nick

1

Обратите внимание, что путь только геометрия. Вы можете установить .fillStyle в любое время до fill().

+0

'fillStyle' не является функцией – 1j01

+0

oops! Исправлена. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^