雑記帳

球面の方程式

前置き
ここで言う「球面」とは「2次元球面」のことを指している。
(..)
球面の方程式 (ベクトル方程式 ver.)
(書きかけ)
方程式
大本となる方程式
イメージ
  • \(r\): 球面の半径
  • \(\boldsymbol{c}\): 球の中心位置
としたとき球面上の任意の点 \(\boldsymbol{x}\) が満たすべき方程式は以下のように表される。
\[ \lVert \boldsymbol{x} - \boldsymbol{c} \rVert = r \]
中心位置を原点に固定して得られる方程式
先ほどの式について、中心位置 \(\boldsymbol{c}\) を原点に固定した上で成分に関する式に持っていくと、応用しづらくはなってしまうが
\[ x^2 + y^2 + z^2 - r^2 = 0 \]
という式が得られる。
余談
非自明な項を全て左辺に纏めているのは、トーラスの記事との統一性を持たせたかっただけで、特に深い意味はない。
方程式の導出
大本となる方程式
球面の方程式は至ってシンプルで、
  • 球の中心位置 \(\boldsymbol{c}\) から球面上の点 \(\boldsymbol{x}\) を結ぶ変位ベクトル \((\boldsymbol{x} - \boldsymbol{c})\) の大きさが \(r\) である。
という条件を単に数式化しただけのものである。
中心位置を原点に固定して得られる方程式
まず \(\boldsymbol{x}=(x,y,z)\) とした上で、中心位置 \(\boldsymbol{c}\) を次の形に制限する。
\[ \begin{align} \boldsymbol{c} &= \left[ \begin{matrix} 0 \cr 0 \cr 0 \end{matrix} \right] \end{align} \]
以上を踏まえて球面の方程式を展開していくと、
\[ \begin{align} \lVert \boldsymbol{x} - \boldsymbol{c} \rVert &= r \\ \lVert \boldsymbol{x} - \boldsymbol{c} \rVert ^2 &= r^2 \\ \left(\sqrt{(\boldsymbol{x} - \boldsymbol{c})\cdot (\boldsymbol{x} - \boldsymbol{c})}\right)^2 &= r^2 \\ (\boldsymbol{x} - \boldsymbol{c})\cdot (\boldsymbol{x} - \boldsymbol{c}) &= r^2 \\ ((x,y,z) - (0,0,0))\cdot ((x,y,z) - (0,0,0)) &= r^2 \\ (x,y,z)\cdot (x,y,z) &= r^2 \\ x^2+y^2+z^2 &= r^2 \\ x^2+y^2+z^2 - r^2 &= 0 \\ \end{align} \]
つまり
\[ x^2+y^2+z^2 - r^2 = 0 \]
が得られた。
応用
直線との交点を求める
\(\boldsymbol{x}_0\) を通る \(\boldsymbol{a}\) 方向に伸びる直線
\[ \boldsymbol{l}(t) = \boldsymbol{x}_0+\boldsymbol{a}t \]
を球面の方程式内の \(\boldsymbol{x}\) に代入することで、その直線が球面上の点と交差する時の実数 \(t\) を求める方程式を得ることができる。
具体的には
\[ \begin{align} \lVert \boldsymbol{x} - \boldsymbol{c} \rVert &= r \\ \lVert \boldsymbol{x} - \boldsymbol{c} \rVert ^2 &= r^2 \\ \lVert (\boldsymbol{x}_0+\boldsymbol{a}t) - \boldsymbol{c} \rVert ^2 &= r^2 \\ \lVert (\boldsymbol{x}_0 - \boldsymbol{c}) + \boldsymbol{a}t \rVert ^2 &= r^2 \\ ((\boldsymbol{x}_0 - \boldsymbol{c}) + \boldsymbol{a}t)\cdot ((\boldsymbol{x}_0 - \boldsymbol{c}) + \boldsymbol{a}t) &= r^2 \\ \| \boldsymbol{x}_0 - \boldsymbol{c} \|^2 + 2t (\boldsymbol{x}_0 - \boldsymbol{c}) \cdot \boldsymbol{a} + \| \boldsymbol{a} \|^2 t^2 &= r^2 \\ \| \boldsymbol{a} \|^2 t^2 + \{ 2 (\boldsymbol{x}_0 - \boldsymbol{c}) \cdot \boldsymbol{a} \} t + \{ \| \boldsymbol{x}_0 - \boldsymbol{c} \|^2 - r^2 \} &= 0 \\ \end{align} \]
つまり「球面と直線の交点」は、以下の「\(t\) に関する2次方程式」を解くことによって間接的に求めることができる。
\[ \begin{align} 0 =& \: \| \boldsymbol{a} \|^2 t^2 \\ & + \{ 2 (\boldsymbol{x}_0 - \boldsymbol{c}) \cdot \boldsymbol{a} \} t \\ & + \| \boldsymbol{x}_0 - \boldsymbol{c} \|^2 - r^2 \\ \end{align} \]
球面の方程式 (媒介変数表示 ver.)
イラストレーション
上の図を見てもらえれば半径 \(r\) の球面上の点 \(x\) は、2つのベクトル \(\boldsymbol{v}_1,\boldsymbol{v}_2\) の和
\[ \begin{align} \boldsymbol{x} &= \boldsymbol{v}_1 + \boldsymbol{v}_2 \\ &= r \cos \theta_2 \left[ \begin{matrix} \cos \theta_1 \cr \sin \theta_1 \cr 0 \end{matrix} \right] + r \sin \theta_2 \left[ \begin{matrix} 0 \cr 0 \cr 1 \end{matrix} \right] \\ &= \left[ \begin{matrix} r \cos \theta_2 \cos \theta_1 \cr r \cos \theta_2 \sin \theta_1 \cr r \sin \theta_2 \end{matrix} \right] \end{align} \]
即ち
\[ \boldsymbol{x}(\theta) = \left[ \begin{matrix} r \cos \theta_2 \cos \theta_1 \cr r \cos \theta_2 \sin \theta_1 \cr r \sin \theta_2 \end{matrix} \right] \]
という媒介変数 \(\theta\) を用いた式で表すことができる。
(..)