「オイラー角」の版間の差分
(3人の利用者による、間の7版が非表示) | |||
行1: | 行1: | ||
'''オイラー角'''([[Euler angle]])とは、3次元物体の回転方向を指定するための方法である。 | '''オイラー角'''([[Euler angle]])とは、3次元物体の回転方向を指定するための方法である。 | ||
− | |||
− | + | 3つの異なる軸周りの回転により組み合わされます。x, y, z軸周りの回転行列をRi, i=x or y or zで表現するとすると | |
− | + | 物体の回転行列Rは | |
− | + | R = Ri * Rj * Rk | |
− | + | ||
− | + | という3つの回転により表現できます。その可能性として、第一回転で3通りの軸の選択、第二回転で、それ以外の2軸、第三回転で、それ以外の2軸の選択があり得るので、全部で12通りの表現方法がある。 | |
− | + | 加えて、物体の回転及び軸の回転の表現の2つの方法がある。 | |
− | 4.物体の回転か、軸の回転か: S|R | + | このとき、物体上の点(x, y, z)はこの回転行列により、(x', y', z')へと変換されます。 |
− | + | ||
+ | ¥begin{bmatrix} x'¥¥ y'¥¥ z' ¥end{bmatrix} = R ¥begin{bmatrix} x¥¥ y¥¥ z ¥end{bmatrix} | ||
+ | |||
+ | [[Eos]]では次の表現方法を使って指定します。 | ||
+ | |||
+ | [[Media:Input-CircleTriangle.mrc|入力ファイル]]の画像 | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td><p align="Center">[[画像:Input-CircleTriangle.png]]<br> | ||
+ | xy平面<br></p> | ||
+ | </td> | ||
+ | <td><p align="Center">[[画像:Input1-CircleTriangle.png]]<br> | ||
+ | yz平面<br></p> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | 1.最初の回転軸の指定(3通り): X|Y|Z<br> | ||
+ | x、y、z軸のどれを使って回転させるかを示します。 | ||
+ | |||
+ | <div>例. [[mrc3Dto2D]]にて第1軸を0 ~ 340° (20° 刻み)で回転させたときの違い(xy平面)</div> | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td>x軸の回転(XOYS)<br> | ||
+ | [[画像:Input-XOYS.png]]<br> | ||
+ | y軸の回転(YOYS)<br> | ||
+ | [[画像:Input-YOYS.png]]<br> | ||
+ | z軸の回転(ZOYS)<br> | ||
+ | [[画像:Input-ZOYS.png]]<br> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | 2.次の回転軸の指定(2通り): O|E<br> | ||
+ | 最初の回転の軸から、x、y、z順(Even)か、z、y、x順(Odd)かを示します。 | ||
+ | |||
+ | <div>例. [[mrc3Dto2D]]にて第1、2軸を0 ~ 340° (20° 刻み)で回転させたときの違い(xy平面)(横が第2軸の回転)</div> | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td>y軸 -> x軸の回転(YOYS)<br> | ||
+ | [[画像:Input-YOYS1.png]]<br> | ||
+ | </td> | ||
+ | <td>y軸 -> z軸の回転(YEYS)<br> | ||
+ | [[画像:Input-YEYS.png]]<br> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | 3.3回目の回転軸の指定(2通り): Y|N<br> | ||
+ | 第二軸の選択で選んだ順序のまま(Y)か、反転するか(N)かを示します。 | ||
+ | |||
+ | <div>例. [[mrc3Dto2D]]にて第1、2を0 ~ 60° (30° 刻み)3軸を0 ~ 340° (20° 刻み)で回転させたときの違い(xy平面)(横が第3軸の回転)</div> | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td>y軸 -> x軸 -> z軸の回転(YOYS)<br> | ||
+ | [[画像:Input-YOYS2.png]]<br> | ||
+ | </td> | ||
+ | <td>y軸 -> x軸 -> y軸の回転(YONS)<br> | ||
+ | [[画像:Input-YONS.png]]<br> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
+ | |||
+ | 4.物体の回転か、軸の回転か: S|R<br> | ||
+ | 物体の回転(S)か、 軸の回転(R)かを示します。 | ||
+ | |||
+ | <div>例. [[mrc3Dto2D]]にて第1、2軸を0 ~ 340° (20° 刻み)で回転させたときの違い(xy平面)</div> | ||
+ | <table> | ||
+ | <tr> | ||
+ | <td>y軸 -> x軸->z軸の物体回転(YOYS)<br> | ||
+ | [[画像:Input-YOYS1.png]]<br> | ||
+ | </td> | ||
+ | <td>y軸 -> x軸->z軸の軸回転(YOYR)(z->x軸の物体回転に対応)<br> | ||
+ | [[画像:Input-YOYR.png]]<br> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br> | ||
例えば、YOYSとは、3次元物体をY->X->Z軸の順に回転することを示しています。 | 例えば、YOYSとは、3次元物体をY->X->Z軸の順に回転することを示しています。 | ||
+ | |||
+ | |||
+ | ==ファイルの作成順== | ||
+ | [[Eos]]では入力されたオイラー角からファイルを出力する[[コマンド]]があります。<br> | ||
+ | ファイルは第3軸 → 第2軸 → 第1軸の回転順に作成されます。 | ||
+ | |||
+ | 例えば、[[mrc3Dto2D]]を使用して、オプション-EAを(YOYS, 0, 90, 360)にした場合、 | ||
+ | <table border="1"> | ||
+ | <tr> | ||
+ | <th> | ||
+ | 出力ファイルのz成分</th> | ||
+ | <th> | ||
+ | 第1軸(y軸)</th> | ||
+ | <th> | ||
+ | 第2軸(x軸)</th> | ||
+ | <th> | ||
+ | 第3軸(z軸)</th> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 1</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 4</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 5</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 6</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 9</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 10</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 180</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 11</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 180</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 24</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 25</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 26</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 29</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 30</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 0</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 31</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | <td> | ||
+ | 90</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | <td> | ||
+ | .</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 123</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | <td> | ||
+ | 270</td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td> | ||
+ | 124</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | <td> | ||
+ | 360</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | |||
+ | の順に作成されます。 |
2015年6月22日 (月) 18:24時点における最新版
オイラー角(Euler angle)とは、3次元物体の回転方向を指定するための方法である。
3つの異なる軸周りの回転により組み合わされます。x, y, z軸周りの回転行列をRi, i=x or y or zで表現するとすると 物体の回転行列Rは
R = Ri * Rj * Rk
という3つの回転により表現できます。その可能性として、第一回転で3通りの軸の選択、第二回転で、それ以外の2軸、第三回転で、それ以外の2軸の選択があり得るので、全部で12通りの表現方法がある。 加えて、物体の回転及び軸の回転の表現の2つの方法がある。
このとき、物体上の点(x, y, z)はこの回転行列により、(x', y', z')へと変換されます。
¥begin{bmatrix} x'¥¥ y'¥¥ z' ¥end{bmatrix} = R ¥begin{bmatrix} x¥¥ y¥¥ z ¥end{bmatrix}
Eosでは次の表現方法を使って指定します。
入力ファイルの画像
1.最初の回転軸の指定(3通り): X|Y|Z
x、y、z軸のどれを使って回転させるかを示します。
x軸の回転(XOYS) |
2.次の回転軸の指定(2通り): O|E
最初の回転の軸から、x、y、z順(Even)か、z、y、x順(Odd)かを示します。
y軸 -> x軸の回転(YOYS) |
y軸 -> z軸の回転(YEYS) |
3.3回目の回転軸の指定(2通り): Y|N
第二軸の選択で選んだ順序のまま(Y)か、反転するか(N)かを示します。
y軸 -> x軸 -> z軸の回転(YOYS) |
y軸 -> x軸 -> y軸の回転(YONS) |
4.物体の回転か、軸の回転か: S|R
物体の回転(S)か、 軸の回転(R)かを示します。
y軸 -> x軸->z軸の物体回転(YOYS) |
y軸 -> x軸->z軸の軸回転(YOYR)(z->x軸の物体回転に対応) |
例えば、YOYSとは、3次元物体をY->X->Z軸の順に回転することを示しています。
ファイルの作成順
Eosでは入力されたオイラー角からファイルを出力するコマンドがあります。
ファイルは第3軸 → 第2軸 → 第1軸の回転順に作成されます。
例えば、mrc3Dto2Dを使用して、オプション-EAを(YOYS, 0, 90, 360)にした場合、
出力ファイルのz成分 | 第1軸(y軸) | 第2軸(x軸) | 第3軸(z軸) |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 0 | 90 |
. | . | . | . |
4 | 0 | 0 | 360 |
5 | 0 | 90 | 0 |
6 | 0 | 90 | 90 |
. | . | . | . |
9 | 0 | 90 | 360 |
10 | 0 | 180 | 0 |
11 | 0 | 180 | 90 |
. | . | . | . |
24 | 0 | 360 | 360 |
25 | 90 | 0 | 0 |
26 | 90 | 0 | 90 |
. | . | . | . |
29 | 90 | 0 | 360 |
30 | 90 | 90 | 0 |
31 | 90 | 90 | 90 |
. | . | . | . |
123 | 360 | 360 | 270 |
124 | 360 | 360 | 360 |
の順に作成されます。