この計算機でできること
3次元座標の回転計算機は、ある点を X・Y・Z 軸まわりに回転させたあとの新しい位置を求めるツールです。座標系には右手系を採用し、符号の規則は右手の法則に従います。つまり、回転軸の正の方向から原点を見たとき、正の角度では点が反時計回りに回転します。これは純粋な解析幾何学にもとづく計算なので、物理・ロボティクス・CG・CAD・工学など、あらゆる分野に共通して使えます。
使い方
まず、点の最初の座標(初期 x, y, z)を入力します。次に、角度の単位を「度」か「ラジアン」のどちらかから選びます。そのうえで、回転を最大3段階まで設定できます。各段階で「軸」と「角度」を指定してください。回転は上から順に適用され、ステップ1は元の点に、ステップ2はステップ1の結果に、というように積み重ねて作用します。角度を空欄または 0 にすると、そのステップは無視されます。1回だけ回転させたい場合は、ステップ1だけ入力すれば十分です。
計算式の解説
各ステップで、回転角をラジアンに直したものを \(\theta\) とし、\(c = \cos\theta\)、\(s = \sin\theta\) と置きます。Z 軸まわりの回転では z はそのまま変わらず、\((x, y)\) が \((x\cdot c - y\cdot s,\; x\cdot s + y\cdot c)\) に移ります。Z 軸まわりの回転行列は次の通りです。
$$R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}$$X 軸まわりの回転では x が固定され、Y 軸まわりの回転では y が固定され、いずれも残りの2成分を同じ形で混ぜ合わせます。
$$\begin{aligned} x^{\prime} &= x \\ y^{\prime} &= y\cos\theta - z\sin\theta \\ z^{\prime} &= y\sin\theta + z\cos\theta \end{aligned}$$$$\begin{aligned} x^{\prime} &= x\cos\theta + z\sin\theta,\; y^{\prime}=y,\; z^{\prime}=-x\sin\theta + z\cos\theta \\ x^{\prime} &= x\cos\theta - y\sin\theta,\; y^{\prime}=x\sin\theta + y\cos\theta,\; z^{\prime}=z \end{aligned}$$複数の回転を組み合わせることは、それぞれの回転行列を掛け合わせることと同じですが、ベクトルに対して1段階ずつ順番に適用すれば、順序の取り違えによるミスを防げます。
計算例
点 (1, 0, 1) を Z 軸まわりに 90° 回転させてみましょう。このとき \(\theta = \pi/2\) なので、\(c = 0\)、\(s = 1\) となります。すると \(x' = 1\cdot 0 - 0\cdot 1 = 0\)、\(y' = 1\cdot 1 + 0\cdot 0 = 1\) となり、\(z'\) は 1 のまま変わりません。結果は (0, 1, 1) です。
一般的な回転角度値
すべての回転行列のエントリは \(\cos\theta\) と \(\sin\theta\) のみに依存します。以下の表は最も一般的な角度の正確な値をリストアップしており、\(R_X\)、\(R_Y\)、または \(R_Z\) に直接代入できます。小数近似値は小数点以下4桁で示されています。
| \(\theta\) (度) | \(\theta\) (ラジアン) | \(\cos\theta\) | \(\sin\theta\) |
|---|---|---|---|
| 0° | 0 | 1 | 0 |
| 30° | \(\pi/6\) | \(\tfrac{\sqrt3}{2}\approx0.8660\) | \(\tfrac12=0.5\) |
| 45° | \(\pi/4\) | \(\tfrac{\sqrt2}{2}\approx0.7071\) | \(\tfrac{\sqrt2}{2}\approx0.7071\) |
| 60° | \(\pi/3\) | \(\tfrac12=0.5\) | \(\tfrac{\sqrt3}{2}\approx0.8660\) |
| 90° | \(\pi/2\) | 0 | 1 |
| 180° | \(\pi\) | −1 | 0 |
| 270° | \(3\pi/2\) | 0 | −1 |
\(180^\circ\) の回転は軸に垂直な2つの座標の符号を反転させることに注意してください。一方、\(270^\circ\) は \(-90^\circ\) と等価です(正の軸に沿って見下ろしたときの時計方向の4分の1回転)。
重要な用語と変数
- 右手座標系
- 右手の指を +X から +Y に向けたときに親指が +Z に沿って指す方向になるように X、Y、Z 軸が向いている3次元フレーム。標準的な数学および物理の慣例です。これらの回転行列はこれを想定しています。
- 右手の法則
- 回転の正の方向に関する覚え方:右手の親指を回転軸の正の方向に向けると、指の曲がりがその軸の正の(反時計方向の)回転方向を示します。
- 回転行列
- \(3\times3\) の行列式が \(+1\) の直交行列で、ベクトルの長さを変えずに固定軸の周りに回転させます。ここで \(R_X\)、\(R_Y\)、\(R_Z\) はそれぞれ X、Y、Z 軸の周りに回転します。
- \(\theta\) (シータ)、回転角度
- 選択した軸の周りの回転量。度またはラジアン単位で入力され、ツールは \(\cos\theta\) と \(\sin\theta\) を評価する前に \(\theta_{\text{rad}} = \theta_{\text{deg}}\cdot\pi/180\) で内部的に度を変換します。
- 回転軸
- その上の点は変わらず、他のすべてがその周りを回転する固定直線(X、Y、または Z)。このツールでは各ステップの軸は 0 = X、1 = Y、2 = Z として選択されます。
- 正の方向/反時計方向
- 正の角度は軸の正の端から原点を向いて見たときに反時計方向の回転を生成します。負の角度はそれを反転させます(時計方向)。
- 出力座標 \(x'\)、\(y'\)、\(z'\)
- 回転点 \(\mathbf{p}' = R\,\mathbf{p}\) の成分。1つ以上の連続的な回転の場合、\(\mathbf{p}' = R_{a_3}(\theta_3)\,R_{a_2}(\theta_2)\,R_{a_1}(\theta_1)\,\mathbf{p}\) です。ここで最も右の行列が最初に適用されます。
よくある質問
正の回転方向とはどちら向きですか? 回転軸の正の方向から原点に向かって見たときの「反時計回り」が正の向きです(右手の法則)。
回転の順番は結果に影響しますか? はい、影響します。3次元の回転には交換法則が成り立たないため、X 軸→Z 軸の順で回す場合と Z 軸→X 軸の順で回す場合とでは、一般に結果が異なります。本ツールではステップ1から順に適用します。
なぜ小さな端数ではなく 0 と表示される結果があるのですか? \(\cos(90°)\) のような値は浮動小数点計算では厳密に 0 にはならないため、見やすさを優先してほぼ 0 の出力は 0 に丸めて表示しています。