То, что я прошу, может быть очень простым, но у меня возникла небольшая проблема с получением ожидаемого результата.Форма клипса на холсте JavaScript, когда за пределами
Мне нужна форма (в этом примере это квадраты, но она должна работать с другими фигурами, такими как круги и т. Д.), Чтобы отрезать себя, когда она выходит за пределы другой формы.
В принципе, верхнее изображение является то, что я хочу, внизу то, что я в настоящее время: http://imgur.com/a/oQkzG
Я слышал, это может быть сделано с globalCompositeOperation, но я ищу любое решение, которое даст желаемого результата.
Это текущий код, если вы не можете использовать JSFiddle:
// Fill the background
ctx.fillStyle = '#0A2E36';
ctx.fillRect(0, 0, canvas.width, canvas.height);
// Fill the parent rect
ctx.fillStyle = '#CCA43B';
ctx.fillRect(100, 100, 150, 150);
// Fill the child rect
ctx.fillStyle = 'red';
ctx.fillRect(200, 200, 70, 70);
// And fill a rect that should not be affected
ctx.fillStyle = 'green';
ctx.fillRect(80, 80, 50, 50);
Вопрос в том, что я не могу понять, где поместить их или какие из них использовать, даже после прочтения этого руководства я не могу получить желаемый эффект. – JsFTW
'ctx.globalCompositeOperation = 'source-over' ctx.fillStyle = 'yellow'; ctx.fillRect (10,10,50,50); ctx.fillStyle = 'green' ctx.fillRect (0,0,20,20) ctx.globalCompositeOperation = 'source-atop'; ctx.fillStyle = 'red' ctx.fillRect (40,40,20,20) ' – Kaiido