回転行列を用いて2次元座標系の点を回転させた点を取得する [java]
何をしたいか
以下のように、ある点Bを任意の点Aを軸として回転させた座標を得たい。
実装方法
行列の演算が必要なので、始めに行列のクラスMatrixを定義する。
詳しくは以下参照
keita-matsushita.hatenablog.com
このMatrixクラスを継承した回転行列を担うクラスRoutationMatrixを実装。また、実際には座標として扱いたいのでx座標、y座標を保持するクラスCoordinateを作る。このクラスのインスタンスメソッドとして座標を回転させるメソッドを実装。
実際には、回転させたい点をレシーバに、回転の基準となる点と回転角度を引数に指定することで回転後の新しい座標のインスタンスを返す仕様になっている。
Coordinate C = B.rotateFrom(A, 90) // Aを基準としてBを90度回転させた時の座標