言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

虚ろな回転

昨日あれから式を見ながらびっくりした事。複素数の掛け算は回転とズームだった!

複素数というのは、(a + b * i) こういった感じの数の事で、i * i = -1 という風に「定義」されている。こんな感じの説明からして頭にくるわけだが、複素数に使われる二つの数 a と b を座標とみなす事も出来る(x + y * i)。ここで、二つの複素数を掛けると

(x1 + y1 i) (x2 + y2 i) = (x1 x2) + (x1 y2 i) + (y1i x2) + (y1 i y2 i)                       
                        = (x1 x2) + (x1 y2 i) + (y1i x2) + (-1 y1 y2)
                        = (x1 x2 - y1 y2) + i (x1 y2 + y1 x2)

つまり、二つの複素数を点と思ったものを掛けた結果、

  • x座標 = x1 x2 - y1 y2
  • y座標 = x1 y2 + y1 x2

とのようになる新しい点が出来るのだが。これは昨日書いた式

  • Qx = RxPx - RyPy
  • Qy = RyPx + RxPy

と同じ形をしている。回転の場合、角度を表すベクトル R の距離は 1 だという事にしたのだが、全ての点は単位ベクトルとその実数倍(ズーム)という形で表現できるので、結局複素数の掛け算と点の回転ズームは同じ事だという事になる。i * i = -1 という無理矢理な話が何故回転と関係するのかは検討の余地があるが、僕は複素数はあまり使わないので置いておく。多分複素数の親玉クォータニオンの時にもう一度考える。

複素数は高校くらいの時に習ったような気がするが、全く意味不明で面白く無かった。だけど図形と関係がある事が分かってちょっと嬉しい。

(注: 点のズームと書くと大きさの無い点が大きくなってしまうよう誤解を生むが、これは原点からの距離の意味で書いている。図形は沢山の点で出来ているので、それぞれの点が同じ割合で原点から離れたり近づいたりすると、図形全体として拡大縮小すると言う事を想像してほしい)