点の回転計算ツールとは?
このツールは、2D平面上の点を任意の中心を基準に、指定した角度だけ回転させます。回転は「剛体変換」のひとつで、距離や形を変えずに向きだけを変えるのが特徴です。幾何学はもちろん、コンピューターグラフィックス、ロボティクス、ゲーム開発、各種エンジニアリングなど、ある点(ピボット)を軸にオブジェクトや座標を回転させたいあらゆる場面で活躍します。
使い方
まず回転させたい点の座標(Point X、Point Y)を入力します。次に回転の中心(Center X、Center Y)を設定してください。原点を中心に回したい場合は (0, 0) のままでOKです。最後に回転角度を「度(degrees)」で入力します。正の角度は反時計回り、負の角度は時計回りに回転します。計算が完了すると、新しい座標 \((x', y')\) が表示されます。
計算式の解説
原点を中心に角度 \(\theta\) だけ反時計回りに回転すると、点 \((x, y)\) は次のように移動します。
$$x' = x\cos\theta - y\sin\theta$$ および $$y' = x\sin\theta + y\cos\theta$$
原点以外の任意の中心 \((c_x, c_y)\) を基準に回転させる場合は、まず点から中心の座標を引き、回転を適用してから、中心の座標を足し戻します。この「平行移動 → 回転 → 平行移動」という3ステップこそ、本ツールが内部で行っている処理そのものです。
$$\begin{gathered} \begin{aligned} x' &= \Delta x\cos\theta - \Delta y\sin\theta + \text{Center X} \\ y' &= \Delta x\sin\theta + \Delta y\cos\theta + \text{Center Y} \end{aligned} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \Delta x &= \text{Point X} - \text{Center X} \\ \Delta y &= \text{Point Y} - \text{Center Y} \\ \theta &= \text{Angle} \cdot \dfrac{\pi}{180} \end{aligned} \right. \end{gathered}$$
計算例
点 (1, 0) を原点まわりに 90° 回転させてみましょう。\(\theta = 90°\) のとき、\(\cos\theta = 0\)、\(\sin\theta = 1\) です。したがって $$x' = 1\cdot 0 - 0\cdot 1 = 0$$ $$y' = 1\cdot 1 + 0\cdot 0 = 1$$ となります。新しい点は (0, 1)。これはちょうど反時計回りに4分の1回転した位置で、期待どおりの結果です。
よくある質問
角度は時計回り?それとも反時計回り? 正の角度は反時計回りに回転します(数学の標準的な慣習)。時計回りに回したい場合は、マイナスの角度を入力してください。
原点以外の点を中心に回転できますか? はい、できます。Center X と Center Y にピボットとしたい点を設定すれば、平行移動の処理は自動で行われます。
回転すると中心からの距離は変わりますか? 変わりません。回転は距離を保つ変換なので、回転後の点も元の点と同じだけ中心から離れた位置にあります。