メールマガジン・新着情報一覧
- TOP
- メールマガジン・新着情報一覧
- A-0052. 3次元回転と極座標表示 — TT
2015.07.29
A-0052. 3次元回転と極座標表示 — TT
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ 3次元回転と極座標表示 発行:エスオーエル株式会社 https://www.sol-j.co.jp/ 連載「X線CTで高精度寸法測定!?」 2015年7月29日号 VOL.052 平素は格別のお引き立てを賜り、厚く御礼申し上げます。 X線CTスキャンによる精密測定やアプリケーション開発情報などをテーマに、 無料にてメールマガジンを配信いたしております。 ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ 今回も、3次元回転を取り上げます。 まず、3次元座標系を極座標で書いてみます。 最初に、それぞれが垂直に交わった3本の座標軸をイメージします。 座標系の取り方には、右手系と左手系がありますので、右手系を選びます。 右手系を選ぶと、右手の親指、人差指、中指をそれぞれ垂直に立てたときに、 親指がX、人差指がY、中指がZ に対応します。 この座標系上に点(点P と呼ぶことにします)を用意して、 その座標が (x, y, z) になっているとします。 原点O (0, 0, 0) から 点P (x, y, z) までの距離を r とします。 つまり、 r = √( x^2 + y^2 + z^2 ) です。 さて、この点Pを XY平面に垂直に落とし、その点を点H と呼ぶことにします。 そして、線分OPと線分OHの成す角度をθと表すことにします。 Z軸と線分OPの成す角度をθとする流儀もありますが、 Werthのソフトウェアの記法に合わせて進めていきます。 また、X軸と線分OHの成す角度をφと表すことにします。 では、線分PHの長さを計算してみましょう。 三角形POHは、頂点Oの角度がθで、頂点Hが直角なので、 三角関数で計算できます。 線分OPの長さが r なので、PH = r sinθ です。 この PH は、まさに点P の Z座標(XY平面からの高さ)なので、 z = r sinθ です。 次に、線分OHの長さを計算してみましょう。 同じく、三角形POHを考えると、今度はコサインです。 OH = r cosθ になります。 このOHをX成分とY成分に分解します。 点HをX軸に垂直に落とした点は、まさに x であり、 点HをY軸に垂直に落とした点は、まさに y になります。 ですから、OHを斜辺とする角度φをもつ直角三角形に着目すると、 x = OH cosφ y = OH sinφ になります。 OHの長さは、既に求めてあります。 先に計算した z も合わせて並べて書くと、 x = r cosθ cosφ y = r cosθ sinφ z = r sinθ となりました。 これが、3次元の極座標表示です。 点Pを指定するのに、 直交座標の (x, y, z) という3つの数値でもよいのですが、 極座標の (r, θ, φ) という3つの数値でもよいことになります。 そして、その表示方法間の関係が上の式になります。 ちなみに、この式は (r, θ, φ) を (x, y, z) に変換する式なので、 逆の (x, y, z) を (r, θ, φ) に変換する式も書いてみます。 r は、冒頭で既に出てきていますので、θとφを逆三角関数で計算します。 すると、 r = √( x^2 + y^2 + z^2 ) θ = arcsin ( z / √( x^2 + y^2 + z^2 ) ) φ = arccos ( x / √( x^2 + y^2 ) ) となります。 では、点Pを回転してみます。 回転した後の点を点Qと呼び、直交座標系での座標を (u, v, w) とします。 Z軸周りに角度γ回転するのは、比較的簡単です。 回転の方向は、X軸からY軸に向かう方向を正とします。 φ を φ+γ にすればよいので、 u = r cosθ cos(φ+γ) v = r cosθ sin(φ+γ) w = r sinθ です。回転前の (x, y, z) から 回転後の (u, v, w) に変換する式は、 三角関数の加法定理を使うと計算できます。 cos(φ+γ) = cosφcosγ - sinφsinγ sin(φ+γ) = sinφcosγ + cosφsinγ ですので、 u = r cosθ (cosφcosγ - sinφsinγ) v = r cosθ (sinφcosγ + cosφsinγ) となり、これを xとy で書き直すと、 u = x cosγ - y sinγ v = x sinγ + y cosγ w = z となります。これが、Z軸周りに角度γ回転したときの式です。 よく見ると、これはXY平面で2次元回転をしているだけだということに気が付きます。 そこで、Y軸周りに角度β回転する場合は、 XZ平面で2次元回転をすればよいと気付きますので、そのようにやってみます。 回転の方向は、Z軸からX軸に向かう方向を正とします。 すると、 u = x cosβ + z sinβ v = y w = -x sinβ + z cosβ となります。これが、Y軸周りに角度β回転したときの式です。 同様に、X軸周りに角度α回転してみます。 これも、x が変化せずに、YZ平面で2次元回転すると考えて計算します。 すると、 u = x v = y cosα - z sinα w = y sinα + z cosα となります。これが、X軸周りに角度α回転したときの式です。 これで、3次元回転を実際にする場合の感覚が掴めたら、 もっと一般的な回転も式で書き下すことができるようになります。 回転を行列の公式を使うだけだと、とても便利ですが、 公式を忘れても導けるようになっておくと、 色々なものが見えてくるようになりますし、応用も利くようになります。 -- 高野智暢 ☆TomoScope専門サイトはこちら☆