これは,Wolfram言語の以前のバージョンに基
づくMathematica 5のためのドキュメントです.
最新のドキュメント(バージョン11.1)もご覧ください.

Documentation / Mathematica / アドオンとリンク / 標準パッケージ / Geometry /

Geometry`Rotations`

2Dの回転

従来の数学的慣習では,平面における角度は正の 軸から時計回りで測定される.RotationMatrix2Dはこの方向へ回転させるのに必要な座標の変更のための行列を与える.つまり,この行列を使ってベクトルを動かすと,ベクトルは時計回りで回転することになる.他のMathematica の組込み関数と同じように,角度はすべてラジアンで与えられる.

パッケージをロードする.

In[1]:= <<Geometry`Rotations`

MatrixFormを使って表示した,60度回転させるための行列である.

In[2]:= MatrixForm[RotationMatrix2D[ N[Pi/3]] ]

Out[2]//MatrixForm=

次は,平面上に2つの点を持つリストである.

In[3]:= {a, b} = {{0., 0.}, {0.5, 0.5}}

Out[3]=

{1, 1}を中心に,それぞれの点を60度回転させる.

In[4]:= {anew, bnew} =
{Rotate2D[a, N[Pi/3], {1., 1.}],
Rotate2D[b, N[Pi/3], {1., 1.}]}

Out[4]=

回転の前後の2点をつなぐ線分を示す.回転の中心となった点も示されている.

In[5]:= Show[Graphics[
{Line[{a, b}], Line[{anew, bnew}],
{PointSize[.02], Point[{1, 1}]}}],
AspectRatio->Automatic]

Out[5]=

3Dの回転

オイラー角phithetapsiで与えられる回転は,3つの連続した回転に分解することができる.最初は 軸の回りを角度phi で,次に 軸の回りを角度theta で,3度目に再び 軸の回りを角度psi で回転する.角度theta は0からPi までの範囲に限定される.

引数を厳密値で与えると,行列の要素も厳密値となる.

In[6]:= RotationMatrix3D[Pi, Pi/3, Pi/4]

Out[6]=

3Dのグラフィックスオブジェクト全体を回転させる際は,オブジェクトのプリミティブのリストで指定された座標すべてを変換しなければならない.これにはパッケージGraphics`Shapes`の中の関数RotateShapeを使うとよい.