私が求めていることは非常に簡単かもしれませんが、意図した結果を得るのにかなり苦労しています。
形状(この例では正方形ですが、円などの他の形状でも機能するはずです)が別の形状の境界を離れるときにそれ自体を切り取る必要があります。
基本的に、上の画像は私が欲しいもので、下は私が現在持っているものです: 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);