回答編集履歴

2

説明を補足

2019/12/05 03:04

投稿

fana
fana

スコア11708

test CHANGED
@@ -36,6 +36,14 @@
36
36
 
37
37
  あなたがどこかで目にした「x座標とy座標(まぁここではu座標とv座標ですが)を入れ替える,ただし一方の側は-1倍する」という話になっている,ということですね.
38
38
 
39
+ 回転前の座標(u,v)と90度回転後の座標(u',v')の関係というのが,
40
+
41
+ u'=-v
42
+
43
+ v'=u
44
+
45
+ になっている,という話.
46
+
39
47
 
40
48
 
41
49
  あとは,(u,v)←→(x,y) の対応関係(相互の変換)を用いれば「配列の中身を回転する処理」ができますよね.

1

追記

2019/12/05 03:04

投稿

fana
fana

スコア11708

test CHANGED
@@ -17,3 +17,33 @@
17
17
 
18
18
 
19
19
  とかいう謎の文言は一旦忘れて,配列indexを座標値とする世界の上での適切な (x,y)←→(x',y') の変換を導出して用いてください.
20
+
21
+
22
+
23
+ ---
24
+
25
+
26
+
27
+ 絵を描いてみました.
28
+
29
+ 何やらxとかyとかいう言葉に振り回されているように見受けるので,(u,v)という新しい座標系を明示的に導入.(※(u,v)の座標系は別に下図の形じゃなくても自分が扱いやすいものを考えれば良い)
30
+
31
+
32
+
33
+ この座標系では,2x2の配列の4個の要素の「丁度ど真ん中」に原点をとっています.
34
+
35
+ 回転作業をこの(u,v)の世界で考えてみますと,90度回転とは
36
+
37
+ あなたがどこかで目にした「x座標とy座標(まぁここではu座標とv座標ですが)を入れ替える,ただし一方の側は-1倍する」という話になっている,ということですね.
38
+
39
+
40
+
41
+ あとは,(u,v)←→(x,y) の対応関係(相互の変換)を用いれば「配列の中身を回転する処理」ができますよね.
42
+
43
+ 「配列の中身を回す処理」によって,回転前に位置(x,y)にあった要素が回転後には位置(x',y')に移動するとき,この
44
+
45
+ (x,y)←回す→(x',y') という前後の座標の対応関係(変換)を,
46
+
47
+ (x,y)←→(u,v)←回す→(u',v')←→(x',y') として考えればよいわけです.
48
+
49
+ ![イメージ説明](fd9e6f55fafb6b0983ac47bf2ff7b845.png)