| 情報学部 | 菅沼ホーム | 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 目次 | 基礎技術目次 | 索引 |