原点を中心としない回転

原点を中心としない回転を考える。点 p を、点 t を中心として R 回転させるということは、点 t が原点になるように平行移動してから回転を行なって、その後で元に戻すということだから、

 p' = t + R(p - t) = Rp + (I - R)t

となる。すなわち、p をあたかも原点中心であるかのように R 回転したあと、R と t から決まるベクトル分だけ平行移動すればよい。回転操作の前後で2回平行移動する実装を見かけることがあるが、無駄である。