3D的旋转公式推导

2018-7-19 admin 数学算法

微信截图_20180719180012.png


绕X轴旋转, 如上图所示, P1是空间上的一个点, 绕X轴转β后到P2.

由于绕X轴旋转, P点的x坐标不变, (y,z)坐标会发生变化.

故先简化, 令L是P1在ZY平面上的映射点, K是P2在ZY平面的映射点,   有L(0,y1,z1), K(0,y2,z2)


所以可得到

绕x轴转动, x2 = x1 不变化, 所以下面步骤先不考虑x轴坐标


转动前


y1 = |OL向量| * cos(α)

z1 = |OL向量| * sin(α)


转动后

y2 = |OL向量| * cos(α+β)

z2 = |OL向量| * sin(α+β)


套入和差角公式

y2 = |OL向量| * ( cos(α)*cos(β) - sin(α)*sin(β) ) = |OL向量| * cos(α) * cos(β) - |OL向量| * sin(α) * sin(β)

z2 = |OL向量| * ( sin(α)*cos(β) + cos(α)*sin(β) ) = |OL向量| * sin(α) * cos(β) + |OL向量| * cos(α) * sin(β)


带入转动前的公式, 加上不会变化的x

x2 = x1

y2 = y1 * cos(β) + z1 * sin(β)

z2 = z1 * cos(β) - y1 * sin(β)


这里可以得到矩阵

绕X轴旋转公式

[ x2 ]      [ 1     0          0    ]    [ x1 ]

[ y2 ]  =  [ 0  cos(β)   sin(β) ] * [ y1 ]

[ z2 ]      [ 0  -sin(β)   cos(β) ]   [ z1 ]


绕Y轴旋转公式

[ x2 ]      [ cos(β)  0   -sin(β) ]    [ x1 ]

[ y2 ]  =  [ 0         1    0       ] * [ y1 ]

[ z2 ]      [ sin(β)   0   cos(β) ]    [ z1 ]



绕Z轴旋转公式

[ x2 ]      [ cos(β)  sin(β)   0 ]    [ x1 ]

[ y2 ]  =  [ -sin(β)  cos(β)  0 ] * [ y1 ]

[ z2 ]      [   0         0       1  ]   [ z1 ]




标签: 计算机图形学 矩阵 学习 图像处理

发表评论:

Powered by emlog | |

浙ICP备17021512号 |浙公网安备 33010602008237号