사원수를 오일러각 $(\theta_{pitch},\;\theta_{yaw},\;\theta_{roll})$ 을 나타내는Vector3 로 변환합니다. 결과는 out 에 담아 돌려줍니다.

Syntax

Quaternion.toEuler(q)
Quaternion.toEuler(q, rotationOrder)
Quaternion.toEuler(q, rotationOrder, out)

Parameters

q

rotationOrder

out

Description

$$ q_{z}\cdot q_{y}\cdot q_{x} = (c_z,\;s_z\cdot\vec{Z})\cdot(c_y,\;s_y\cdot\vec{Y})\cdot(c_x,\;s_x\cdot\vec{X}) \\ $$

$$ (q_z\cdot q_y) = (c_z,\;s_z\cdot\vec{Z})\cdot(c_y,\;s_y\cdot\vec{Y}) \\

= (c_zc_y-s_zs_y\cdot(\vec{Z}\cdot\vec{Y}),\;\;s_zs_y\cdot(\vec{Z}\times\vec{Y})+(c_ys_z\cdot\vec{Z})+(c_zs_y\cdot\vec{Y})) \\

= (c_zc_y,\;\;(-s_zs_y\cdot\vec{X})+(c_ys_z\cdot\vec{Z})+(c_zs_y\cdot\vec{Y})) \\ $$

$$ (q_z\cdot q_y)\cdot q_x = (c_zc_y,\;\;(-s_zs_y\cdot\vec{X})+(c_ys_z\cdot\vec{Z})+(c_zs_y\cdot\vec{Y}))\cdot(c_x,\;s_x\cdot\vec{X}) \\ $$

$$ q.w = c_zc_yc_x +s_zs_ys_x\cdot(\vec{X}\cdot\vec{X})-c_ys_zs_x\cdot(\vec{Z}\cdot\vec{X})-c_zs_ys_x\cdot(\vec{Y}\cdot\vec{X}) \\

= c_zc_yc_x+s_zs_ys_x $$

$$ q.\vec{v} = -s_zs_ys_x\cdot(\vec{X}\times\vec{X}) + c_ys_zs_x\cdot(\vec{Z}\times\vec{X})+c_zs_ys_x\cdot(\vec{Y}\times\vec{X})+c_zc_ys_x\cdot\vec{X} -s_zs_yc_x\cdot\vec{X} + c_ys_zc_x\cdot\vec{Z} + c_zs_yc_x\cdot\vec{Y} \\

\;\\

= \vec{0} +c_ys_zs_x\cdot\vec{Y} -c_zs_ys_x\cdot\vec{Z} + c_zc_ys_x\cdot\vec{X} - s_zs_yc_x\cdot\vec{X}+c_ys_zc_x\cdot\vec{Z} + c_zs_yc_x\cdot\vec{Y} \\

\;\\

= \vec{(c_zc_ys_x-s_zs_yc_x,\;c_ys_zs_x+c_zs_yc_x,\;-c_zs_ys_x + c_ys_zc_x)} $$