「HTML/HTML5」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
92 行
 
== canvas要素 ==
{{Main|JavaScript/Canvas}}
 
=== 概要 ===
[[w:canvas要素|canvas要素]]はダイナミックなビットマップ(ベクター)画像を描画する。二次元コンピュータグラフィックスはCanvas APIにより実現され<ref>https://html.spec.whatwg.org/multipage/canvas.html#2dcontext </ref>、ハードウェアアクセラレーションされた二次元及び三次元コンピュータグラフィックスは[[w:WebGL|WebGL]]を用いて実現される。
107 ⟶ 109行目:
;挿入するJavaScriptコード例
<syntaxhighlight lang="javascript">
var canvas = document.querySelector("#canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(0,0,200)";
129 ⟶ 130行目:
 
<script>
var canvas = document.querySelector("#canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(0,0,200)";
170 行
<canvas id="canvas" width="600" height="500"></canvas>
<script>
var cvsctx = documentcanvas.getElementByIdgetContext("canvas2d"); // canvas要素コンテキスト作成取得 // なお、以降cvsは使わない
var ctx = cvs.getContext("2d"); // コンテキストの取得 // なお、以降cvsは使わない
 
var count = 0; // 時間を数えるためのカウンター
 
 
var dummy = function draw() { // var でメモリなど確保しないと後工程が上手く行かない。
/* 背景色 */
184 ⟶ 180行目:
ctx.fillRect(50 + count,30, 40, 40); // fillRectで四角を描画できる
if (count < 300){
count++; // 単なるインクリメント
} // if count の終わり
} // function の終わり
 
setInterval(dummy,10);
</script>
</body>
</html>
</syntaxhighlight>
:(※ Forefox 93 でFedora Linux 35 にて動作確認。)
 
実行すると、青い四角が表示され、その青い四角が、画面の左側をスタート地点として、右にむかって動いていく。
 
 
上記コードだと、ブラウザが動いているかぎり永遠に再描画の処理をしてしまいメモリに負担を掛けるので、下記のように clearInterval で適度なところで停止すると良い。
 
 
;コード例
214 ⟶ 203行目:
<canvas id="canvas" width="600" height="500"></canvas>
<script>
var cvsctx = documentcanvas.getElementByIdgetContext("canvas2d"); // canvas要素コンテキスト作成取得 // なお、以降cvsは使わない
var ctx = cvs.getContext("2d"); // コンテキストの取得 // なお、以降cvsは使わない
 
var count = 0; // 時間を数えるためのカウンター
 
 
var dummy = function draw() { // var でメモリなど確保しないと後工程が上手く行かない。
/* 背景色 */