情報学部 | 菅沼ホーム | HTML 目次 | 索引 |
interface HTMLCanvasElement : HTMLElement { attribute unsigned long width; attribute unsigned long height; DOMString toDataURL(optional DOMString type, any... arguments); DOMString toDataURLHD(optional DOMString type, any... arguments); void toBlob(FileCallback? _callback, optional DOMString type, any... arguments); void toBlobHD(FileCallback? _callback, optional DOMString type, any... arguments); object? getContext(DOMString contextId, any... arguments); boolean supportsContext(DOMString contextId, any... arguments); };
描画の例(中央の円が表示されない場合は,再読み込みをしてみて下さい)
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>CANVAS の例(描画)</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> <SCRIPT TYPE="text/javascript"> function draw() { let canvas = document.getElementById('canvas_e'); canvas.width = 420; // キャンバス要素の幅 canvas.height = 140; // キャンバス要素の高さ let ctx = canvas.getContext('2d'); // 矩形を描く ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(120, 20); ctx.lineTo(120, 120); ctx.lineTo(20, 120); ctx.closePath(); ctx.stroke(); // 円を描く ctx.beginPath(); ctx.arc(70, 70, 40, 0, 2*Math.PI, false); ctx.stroke(); // 外部画像を描く let img = new Image(); img.src = "../ball.gif"; ctx.drawImage(img, 170, 30); // ピクセル値の操作 let wid = 80; let hei = 80; let im = ctx.createImageData(wid, hei); for (let i1 = 0; i1 < hei/2; i1++) { for (let i2 = 0; i2 < wid; i2++) { let k = 4 * (wid * i1 + i2); im.data[k] = 0x00; im.data[k+1] = 0xff; im.data[k+2] = 0x00; im.data[k+3] = 0xff; // 透明度 } } for (let i1 = hei/2; i1 < hei; i1++) { for (let i2 = 0; i2 < wid; i2++) { let k = 4 * (wid * i1 + i2); im.data[k] = 0x00; im.data[k+1] = 0x00; im.data[k+2] = 0xff; im.data[k+3] = 0xff; // 透明度 } } ctx.putImageData(im, 310, 30); } </SCRIPT> </HEAD> <BODY CLASS="white" STYLE="text-align: center" onLoad="draw()"> <H1>簡単な描画</H1> <CANVAS ID="canvas_e" STYLE="background-color: #eeffee;" WIDTH="420" HEIGHT="140"></CANVAS> </BODY> </HTML>
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>アニメーション( setInterval )</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../master.css"> <SCRIPT TYPE="text/javascript"> count1 = 0; // 10 個の円を描くためのカウンタ count2 = 0; // 5 回繰り返すためのカウンタ r = 10; // 円の半径の初期値 canvas = null; ctx = null; timerID = -1; // 開始 function start() { canvas = document.getElementById('canvas_e'); // キャンバス要素の取得 ctx = canvas.getContext('2d'); // キャンバスからコンテキストを取得 timerID = setInterval('draw()',100); } // 描画 function draw() { count1++; if (count1 > 10) { count2++; if (count2 > 4) stop(); else { r = 10; count1 = 1; ctx.clearRect(0, 0, canvas.width, canvas.height); } } ctx.beginPath(); ctx.arc(0, 0, r, Math.PI*1.5, Math.PI*2, true); ctx.stroke(); r = 1.5 * r; } // 停止 function stop() { clearInterval(timerID); ctx.clearRect(0, 0, canvas.width, canvas.height); timerID = -1; } </SCRIPT> </HEAD> <BODY CLASS="eeffee" onLoad="start()"> <H1>アニメーション( setInterval )</H1> <CANVAS ID="canvas_e" STYLE="background-color: #ffffff;" WIDTH="250" HEIGHT="150"></CANVAS> </BODY> </HTML>
情報学部 | 菅沼ホーム | HTML 目次 | 索引 |