context.globalCompositeOperation = 'destination-in';
context.fillRect(200, 220, 200, 100); //Or something similar
destination-in
裝置,每MDC:現有畫布含量保持其中兩個新的形狀和現有的帆布內容重疊。其他一切都是透明的。
或者conversly
context.fillRect(200, 220, 200, 100);
context.globalCompositeOperation = 'source-in';
//Draw arc...
source-in
指:新形狀繪製僅其中兩個新的形狀和目的畫布重疊。其他的都是由透明
這兩種方法最終會破壞已經吸引到畫布上的其他內容,如果這是一個問題,使用clip
context.save();
context.beginPath();
//Draw rectangular path
context.moveTo(200, 220);
context.lineTo(400, 220);
context.lineTo(400, 320);
context.lineTo(200, 320);
context.lineTo(200, 220);
//Use current path as clipping region
context.clip();
//Draw arc...
//Restore original clipping region, likely the full canvas area
context.restore()
膨脹,感謝MooGoo! – Ryan 2010-09-14 19:03:51