★Canvasリファレンス

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

context . fill() …… 現在の塗りつぶしスタイルでサブパスを塗りつぶす
Internet Explorer9
Firefox2Firefox3Firefox4
Google Chrome1Google Chrome2Google Chrome3Google Chrome4Google Chrome5Google Chrome6
Safari3Safari4Safari5
Opera9Opera10
広告



fill()メソッドは、現在の塗りつぶしスタイルでサブパスを塗りつぶす際に使用します。
塗りつぶしスタイルは、fillStyleなどの属性で指定します。

塗りつぶしは、現在のパスに含まれるすべてのサブパスに対して適用されます。
閉じていないサブパスも塗りつぶされますが、実際にサブパスが閉じられるわけではありません。

■非ゼロ回転数ルール

fill()メソッドでは、塗りつぶしの際に「非ゼロ回転数ルール」という塗りつぶしルールが適用されます。
非ゼロ回転数ルールでは、サブパスが交差して図形同士が重なった部分にも塗りつぶしが適用されます。

以下の図は、非ゼロ回転数ルールと偶数奇数ルールの違いを示したものです。
fill()メソッドでは偶数奇数ルールを指定できるわけではありませんが、
比較をすることで非ゼロ回転数ルールを理解しやすくなるのではないかと思います。

四角形や円などの単純な図形の場合には特に意識する必要はありませんが、
サブパス同士が交差するような複雑な図形を塗りつぶす場合には、
塗りつぶしルール次第で結果が異なるので、簡単に理解しておくと良いでしょう。


■パスの表示とスタイル指定、および、変形との関係

パスが表示される際には、塗りつぶしスタイルや線スタイルの指定により表示のされ方が変化しますが、
stroke()メソッドやfill()メソッドで表示されることで、パス自体が影響を受けることはありません。
パスには影・透明度・切り抜き・合成などの効果も適用できます。

一方、パスに変形を適用した場合は、パスが作成される際に影響を受けます。
stroke()メソッドやfill()メソッドでは、
すでに変形が適用されているパスを表示することになります。

■使用例

HTML + JavaScriptソース

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test() {
  //描画コンテキストの取得
  var canvas = document.getElementById('sample');
  if (canvas.getContext) {
    var context = canvas.getContext('2d');
    //ここに具体的な描画内容を指定する
    //塗りスタイル水色、線幅2を指定する
    context.fillStyle = "rgb(0, 141, 213)";
    context.lineWidth = 2;

    //一筆書きで星形のパスを描く
    context.beginPath();
    context.moveTo(90,60);
    context.lineTo(210,60);
    context.lineTo(110,130);
    context.lineTo(150,20);
    context.lineTo(190,130);
    context.closePath();

    //現在のパスを塗りつぶし、輪郭表示する
    context.fill();
    context.stroke();
  }
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>
↓↓↓

ブラウザ上の表示

Canvasで図形を描く


図形を表示するには、canvasタグをサポートしたブラウザが必要です。

※メモ:以下は余談ですが、豆知識として紹介します。

■逆方向のサブパスを重ねると、塗りつぶしがキャンセルされる

もし、独立した2つのサブパスが重なる場合、それぞれの回転方向が同じ場合には塗りつぶしが一回適用されますが、
回転方向が逆の場合には、お互いに打ち消しあって塗りつぶしがキャンセルされます。

例えば、
下の使用例2のように、
5つの座標を順番に指定して一筆書きで星形の図形を作成してから、
同じ5つの座標を今度は逆順に指定した場合には、お互いに打ち消しあって塗りつぶしが適用されません。

■使用例2

HTML + JavaScriptソース

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test2() {
  //描画コンテキストの取得
  var canvas = document.getElementById('sample2');
  if (canvas.getContext) {
    var context = canvas.getContext('2d');
    //ここに具体的な描画内容を指定する
    //塗りスタイル水色、線幅2を指定する
    context.fillStyle = "rgb(0, 141, 213)";
    context.lineWidth = 2;

    //一筆書きで星形のパスを描く
    context.beginPath();
    context.moveTo(90,60);
    context.lineTo(210,60);
    context.lineTo(110,130);
    context.lineTo(150,20);
    context.lineTo(190,130);
    context.lineTo(90,60);	//ここでいったん星形の図形を閉じる

    //さらに続けて同じ5つの座標を逆順に指定する
    context.lineTo(190,130);
    context.lineTo(150,20);
    context.lineTo(110,130);
    context.lineTo(210,60);
    context.closePath();	//逆順の星形の図形を閉じる

    //現在のパスを塗りつぶし、輪郭表示する
    context.fill();
    context.stroke();
  }
}
//-->
</script>
</head>
<body onLoad="test2()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample2" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>
↓↓↓

ブラウザ上の表示

Canvasで図形を描く


図形を表示するには、canvasタグをサポートしたブラウザが必要です。

■関連項目

<canvas> …… 図形を描くHTML5から追加
広告



Sponsors




山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
65 users signed up
もっと表示する