回転

一覧

回転行列での回転
クォータニオン

回転行列での回転 matRotate

matRotate
回転行列での回転
入力
point LREAL[3] 回転前の座標
mat LREAL[3,3] 回転行列
出力
out LREAL[3] 移動後の座標

【 例 】
入力
EulerAngles [30,30,0]
order XYZ
Point [1.0, 1.0, 1.0]
mat
出力
out [1.37, 0.68, 0.82]
この例の入力matにはオイラー角[30,30,0]から行列に変換した値を使用しています

【 計算式 】
\[ R_{xyz}= \begin{bmatrix} m00 & m01 & m02 \\ m10 & m11 & m12 \\ m20 & m21 & m22 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ \end{bmatrix} \]


クォータニオン qtRotate

qtRotate
クォータニオンで回転
入力
vector keisan\sVectol3d 回転軸の方向ベクトル
point LREAL[3] 回転前の座標
angle LREAL 回転角度
出力
out LREAL[3] 移動後の座標

【 例 】
入力
vector [1.0, 1.0, 1.0]
point [1.0, 0.3, 0.1]
angle 150.0
出力
out [-0.05, 0.87, 0.58]

【 計算式 】
元のベクトル \[ Q1= \begin{bmatrix} q_x \\ q_y \\ q_z \\ q_w \\ \end{bmatrix} = \begin{bmatrix} x \\ y \\ z \\ 0 \\ \end{bmatrix} = \begin{bmatrix} point.x \\ point.y \\ point.z \\ 0 \\ \end{bmatrix} \] 回転軸(単位ベクトル) \[ T= \begin{bmatrix} vector.x \\ vector.y \\ vector.z \\ \end{bmatrix} \] 回転を表すクォータニオン \[ R= \begin{bmatrix} q_x \\ q_y \\ q_z \\ q_w \\ \end{bmatrix} = \begin{bmatrix} sin\frac{\theta}{2} T_x \\ sin\frac{\theta}{2} T_y \\ sin\frac{\theta}{2} T_z \\ cos\frac{\theta}{2} \\ \end{bmatrix} \] 回転の計算
\[ Q2 = R \times Q1 \times \bar{R} \]