teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/10/30 03:08

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,42 @@
1
1
  ググって調べただけですが、以下の記事が役に立ちませんか?
2
2
 
3
3
  Canvas に回転した画像を表示するサンプル001
4
- [https://misc.laboradian.com/html5/rotate-image-canvas-sample/001/](https://misc.laboradian.com/html5/rotate-image-canvas-sample/001/)
4
+ [https://misc.laboradian.com/html5/rotate-image-canvas-sample/001/](https://misc.laboradian.com/html5/rotate-image-canvas-sample/001/)
5
+
6
+ **【追記】**
7
+
8
+ 下のコメント欄に「そういうことはないと思うのですが。後で検証して結果を回答欄に書いておきます」と述べましたが、それを以下に書きます。
9
+
10
+ 以下の記事の png 画像とコードを流用し、それに少し手を加えて、画像を 5 度ずつ回転させてみました。
11
+
12
+ Canvas に複数の画像を順番通り描画
13
+ [http://surferonwww.info/BlogEngine/post/2019/10/24/draw-multiple-images-on-canvas-in-order.aspx](http://surferonwww.info/BlogEngine/post/2019/10/24/draw-multiple-images-on-canvas-in-order.aspx)
14
+
15
+ 手を加えたところは JavaScript のコードの、
16
+
17
+ ```
18
+ for (let j = 0; j < images.length; j++)
19
+ {
20
+ context.drawImage(images[j], j * 20, j * 20);
21
+ }
22
+ ```
23
+ の部分を以下のようにし、
24
+
25
+ ```
26
+ for (let j = 0; j < images.length; j++)
27
+ {
28
+ context.save();
29
+ context.rotate(j * 5 * Math.PI / 180);
30
+ context.drawImage(images[j], j * 20, j * 20);
31
+ context.restore();
32
+ }
33
+ ```
34
+ canvas の width, height を画像が収まるよう、
35
+
36
+ ```
37
+ <canvas id="mycanvas" width="250" height="250"></canvas>
38
+ ```
39
+
40
+ と少し大きくしただけです。実行結果は以下のようになります。
41
+
42
+ ![イメージ説明](ee7ed0ee6fbe001e0e1d8c3434ab10a6.jpeg)