情報学部 | 菅沼ホーム | JavaScript 目次 | 基礎技術目次 | 索引 |
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>回転,拡大・縮小,移動</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 08 <SCRIPT TYPE="text/javascript"> 09 function draw() { 10 let canvas = document.getElementById('canvas_e'); 11 canvas.width = 250; // キャンバス要素の幅 12 canvas.height = 130; // キャンバス要素の高さ 13 let ctx = canvas.getContext('2d'); 14 // 回転する前の図形 15 ctx.beginPath(); 16 ctx.strokeRect(40, 20, 100, 50); 17 ctx.stroke(); 18 // 座標軸を反時計回りに20度回転 19 ctx.beginPath(); 20 ctx.fillStyle = "rgb(0, 255, 0)"; 21 ctx.rotate(20*Math.PI/180); 22 ctx.fillRect(40, 20, 100, 50); 23 // 座標軸を移動して縮小 24 ctx.beginPath(); 25 ctx.fillStyle = "rgb(255, 0, 0)"; 26 ctx.rotate(-20*Math.PI/180); 27 ctx.translate(150, 0); 28 ctx.scale(0.5, 0.5); 29 ctx.fillRect(40, 20, 100, 50); 30 } 31 </SCRIPT> 32 </HEAD> 33 <BODY CLASS="white" STYLE="text-align: center" onLoad="draw()"> 34 <H1>回転,拡大・縮小,移動</H1> 35 <CANVAS ID="canvas_e" STYLE="background-color: #eeffee;" WIDTH="250" HEIGHT="130"></CANVAS> 36 </BODY> 37 </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>回転,拡大・縮小,移動(行列)</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 08 <SCRIPT TYPE="text/javascript"> 09 function draw() { 10 let canvas = document.getElementById('canvas_e'); 11 canvas.width = 250; // キャンバス要素の幅 12 canvas.height = 130; // キャンバス要素の高さ 13 let ctx = canvas.getContext('2d'); 14 // 回転する前の図形 15 ctx.beginPath(); 16 ctx.strokeRect(40, 20, 100, 50); 17 ctx.stroke(); 18 // 座標軸を反時計回りに20度回転 19 ctx.beginPath(); 20 ctx.fillStyle = "rgb(0, 255, 0)"; 21 let ang = 20 * Math.PI / 180; 22 let a = Math.cos(ang); 23 let b = Math.sin(ang); 24 let c = -Math.sin(ang); 25 let d = Math.cos(ang); 26 ctx.transform(a, b, c, d, 0, 0); 27 ctx.fillRect(40, 20, 100, 50); 28 // 座標軸を移動して縮小 29 ctx.beginPath(); 30 ctx.fillStyle = "rgb(255, 0, 0)"; 31 ctx.transform(a, -b, -c, d, 0, 0); 32 ctx.transform(0.5, 0, 0, 0.5, 150, 0); 33 ctx.fillRect(40, 20, 100, 50); 34 } 35 </SCRIPT> 36 </HEAD> 37 <BODY CLASS="white" STYLE="text-align: center" onLoad="draw()"> 38 <H1>回転,拡大・縮小,移動(行列)</H1> 39 <CANVAS ID="canvas_e" STYLE="background-color: #eeffee;" WIDTH="250" HEIGHT="130"></CANVAS> 40 </BODY> 41 </HTML>
01 <!DOCTYPE HTML> 02 <HTML> 03 <HEAD> 04 <TITLE>拡大と移動(行列)</TITLE> 05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 06 <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> 07 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css"> 08 <SCRIPT TYPE="text/javascript"> 09 canvas = null; 10 ctx = null; 11 sw = 0; 12 13 function draw() { 14 canvas = document.getElementById('canvas_e'); 15 canvas.width = 250; // キャンバス要素の幅 16 canvas.height = 130; // キャンバス要素の高さ 17 ctx = canvas.getContext('2d'); 18 canvas.addEventListener("click", Click, false); // クリックイベント 19 // 元のの図形 20 ctx.beginPath(); 21 ctx.strokeRect(20, 20, 100, 50); 22 ctx.stroke(); 23 } 24 // マウスのクリック 25 function Click(event) 26 { 27 ctx.clearRect(0, 0, canvas.width, canvas.height); 28 if (sw == 0 ) { 29 ctx.beginPath(); 30 ctx.fillStyle = "rgb(255, 0, 0)"; 31 ctx.transform(1.5, 0, 0, 1.5, 50, 0); 32 ctx.fillRect(20, 20, 100, 50); 33 sw = 1; 34 } 35 else { 36 ctx.setTransform(1, 0, 0, 1, 0, 0); 37 ctx.beginPath(); 38 ctx.strokeRect(20, 20, 100, 50); 39 ctx.stroke(); 40 sw = 0; 41 } 42 } 43 </SCRIPT> 44 </HEAD> 45 <BODY CLASS="white" STYLE="text-align: center" onLoad="draw()"> 46 <H1>拡大と移動(行列)</H1> 47 <CANVAS ID="canvas_e" STYLE="background-color: #eeffee;" WIDTH="250" HEIGHT="130"></CANVAS> 48 </BODY> 49 </HTML>
情報学部 | 菅沼ホーム | JavaScript 目次 | 基礎技術目次 | 索引 |