四元数。
回転 (任意軸)
回転軸と同じ方向に正規化ベクトル\(\boldsymbol{n}\)を置きます。どちらも原点を通るとして、都合の良いところに原点をとります。
回す対象を位置ベクトル\(\boldsymbol{r}\)で表します。
\(\theta\,’\)だけ回した後の位置を位置ベクトル\(\boldsymbol{r}’\)で表します。
(\(\theta\,’\)としているのは前回の記事で式を簡単にするためです。)
\(\boldsymbol{n}\)と同じ方向に\(\boldsymbol{r}_{n-parallel}\)を置きます。原点から回転が構成する円の中心までとします。
\(\boldsymbol{r}_{n-parallel}\)から\(\boldsymbol{r}\)に\(\boldsymbol{r}_{n-orthogonal}\)を置きます。
\(\boldsymbol{n}\)と\(\boldsymbol{r}\)のなす角を\(\angle \boldsymbol{n}\boldsymbol{r}\)で表すことにします。
\[
\boldsymbol{r}_{n-parallel}
= (\|\boldsymbol{r}\|\cos(\angle \boldsymbol{n}\boldsymbol{r}))\boldsymbol{n}
= (\|\boldsymbol{n}\|\|\boldsymbol{r}\|\cos(\angle \boldsymbol{n}\boldsymbol{r}))\boldsymbol{n}
= (\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n}
\]
\(\boldsymbol{n} \cdot \boldsymbol{r}\)は内積なのでスカラー量となり\(\boldsymbol{n}\)に対して通常の積の記号(=特別な積の記号なし)で記述できます。
\[
\boldsymbol{r}_{n-orthogonal} = \boldsymbol{r}-(\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n}
\]
\(\boldsymbol{n} \times \boldsymbol{r}\)を登場させておきます。
回転が構成する円の半径と長さになり\(\boldsymbol{r}_{n-orthogonal}\)と直交します。
ADと直交するBCを引きます。
BCと\(\boldsymbol{n} \times \boldsymbol{r}\)は平行となります。
\(O\)→\(A\)→\(B\)→\(C\)と渡り\(\boldsymbol{r}’\)を目指します。
OA。
\[
\overrightarrow{OA} = \boldsymbol{r}_{n-parallel} = (\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n}
\]
AB。
\[
\begin{align*}
(Bのx) &= \|\overrightarrow{AC}\|\cos\theta\,’ = \|\overrightarrow{AD}\|\cos\theta\,’ \\
(Bのy) &= 0
\end{align*}
\]
\[
\begin{align*}
(Dのx) &= \|AD\| \\
(Dのy) &= 0
\end{align*}
\]
\[
\overrightarrow{AB} = \overrightarrow{AD}\cos\theta\,’
\]
\[
\overrightarrow{AD} = \overrightarrow{AO} + \overrightarrow{OD} = \boldsymbol{r}-\boldsymbol{r}_{n-parallel} = \boldsymbol{r}-(\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n}
\]
\[
\overrightarrow{AB} = (\boldsymbol{r}-(\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n})\cos\theta\,’
\]
BC。
\[
\begin{align*}
(Cのx) &= (Bのx) \\
(Cのy) &= \|\overrightarrow{AC}\|\sin\theta\,’ = \|\boldsymbol{n} \times \boldsymbol{r}\|\sin\theta\,’
\end{align*}
\]
\[
\begin{align*}
(\boldsymbol{n} \times \boldsymbol{r}のx) &= 0 \\
(\boldsymbol{n} \times \boldsymbol{r}のy) &= \|\boldsymbol{n} \times \boldsymbol{r}\|
\end{align*}
\]
\[
\overrightarrow{BC} = (\boldsymbol{n} \times \boldsymbol{r})\sin\theta\,’
\]
\(\boldsymbol{r}’\)。
\[
\boldsymbol{r}’ = (\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n} + (\boldsymbol{r}-(\boldsymbol{n} \cdot \boldsymbol{r})\boldsymbol{n})\cos\theta\,’ + (\boldsymbol{n} \times \boldsymbol{r})\sin\theta\,’
\]
これで\(\boldsymbol{n}\)と\(\boldsymbol{r}\)と\(\theta\,’\)のみで\(\boldsymbol{r}’\)を表すことができました。
広告
IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
さくらのレンタルサーバ

ムームードメイン

Oisix(おいしっくす)

らでぃっしゅぼーや

珈琲きゃろっと

エプソムソルト
