長方形から円を引いたものを描く必要があります。サークルのクリッピングが不可能な場合は、ポリゴンクリッピングゾーンで十分です。HTML5 Canvasのカスタムクリッピングゾーンを設定するにはどうすればよいですか?
HTML5 Canvasのカスタムクリッピングゾーンを設定するにはどうすればよいですか?
長方形から円を引いたものを描く必要があります。サークルのクリッピングが不可能な場合は、ポリゴンクリッピングゾーンで十分です。HTML5 Canvasのカスタムクリッピングゾーンを設定するにはどうすればよいですか?
HTML5 Canvasのカスタムクリッピングゾーンを設定するにはどうすればよいですか?
CanvasチュートリアルでCompositingを読んでください。四角形から円や同様の図形を引く方法について説明しています。
私はあなたがdestination-out
を探していると思う:
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function() {
var ctx = document.getElementById('canvas').getContext('2d');
ctx.fillStyle = "#09f";
ctx.fillRect(15,15,70,70);
ctx.globalCompositeOperation = 'destination-out';
ctx.fillStyle = "#f30";
ctx.beginPath();
ctx.arc(75,75,35,0,Math.PI*2,true);
ctx.fill();
}
</script>
</head>
<body>
<canvas id="canvas" width="400" height="300"/>
</body>
</html>
はjsFiddle上のアクションでそれを参照してください。
「クリップ」と「クリア」を使用することもできます。そのようなもの:
drawRectangle(ctx);
walkCirclePath(ctx);
ctx.clip();
ctx.clear();
しかし、アンチエイリアスはこのように機能しません。
難しかったです。
私が円を除いてすべての場所を描画することが分かっ最善の解決策は、よりよい解決策がないtaht私は信じることができない
c.save();
c.beginPath();
c.moveTo(0, 0);
c.lineTo(x, 0);
c.arc(x, y, 75, - Math.PI/2, Math.PI * 2 - Math.PI/2, 1);
c.lineTo(x, 0);
c.lineTo(1000, 0);
c.lineTo(1000, 500);
c.lineTo(0, 500);
c.clip();
c.drawImage(window.tBitmap[0], x - 100, y - 100);
c.restore();
です。しかし、それは私の必要性のために働く。
それはあなたClipping circles on Canvas – Shadow
yeapを場合に役立ちますねえスタックオーバーフローで、この質問を見てみましょう。それは私が探しているものの近くです。私はサークルの境界線を追跡しないように努力していませんが、私はそれを保持しないサークルを除外して探しています! – webshaker