Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

回転行列

http://twitter.com/maehrm/status/24239768785 とつぶやいたのですが,回転行列で実践してみました。

rot.rb

以下は,点(1, 0)を120度回転させて,次に120度回転させて,さらにもう一回120度回転させるスクリプトです。当然,もとの位置にもどらなければなりません。

require 'matrix'

beta = 120 * Math::PI / 180

rot = Matrix[[Math.cos(beta), -Math.sin(beta)],
             [Math.sin(beta),  Math.cos(beta)]]

p (rot * rot * rot * Matrix.column_vector([1, 0])).map(&:to_i)

実行結果

$ ruby rot.rb
Matrix[[1], [0]]