3D 矩阵旋转
如圖,需要將點(向量)v(x, y, 0) 繞 z 軸旋轉角度θ,求旋轉后的點(向量)v'(x', y', 0)。
大概思路:
1. 將 v(x, y, 0) 分解, v(x, y, 0) = x * p(1, 0, 0) + y* q(0, 1, 0) + 0 * r(0, 0, 1) - r 為 z 軸方向基向量
2. 繞 z 軸旋轉基向量 p(1, 0, 0) 為 p'(cos(θ), sin(θ), 0), q(0, 1, 0) 為 q'(cos(90 + θ), sin(90 + θ), 0)
3. 由向量p' 和q' 可以表示 v',即 v'(x', y', 0) = x *p'(cos(θ), sin(θ), 0) + y *q'(cos(90 +θ), sin(90 +θ), 0) + 0 * (0, 0, 1)
用公式寫一下邏輯:對一個點(向量)v, 可以用基向量表示為
其中,p, q, r 分別表示為 x, y, z 軸上基向量。讓 v 繞 z 軸旋轉角度θ,可以表示為
其中 v' 表示旋轉后的點(向量),p' 表示基向量 p 繞 z 軸旋轉角度θ, q' 表示基向量 q 繞 z 軸旋轉角度θ。3D坐標系以右手坐標系為準,即 x軸正方向右,y軸正方向上,z正方向外。p', q' 分別為
最后得到旋轉后的點 v' 表示為
最后得到一個點(向量)繞 z 軸旋轉的矩陣 Mz 為
同理可得到繞 x 軸和繞 y 軸的旋轉矩陣 Mx 和 My 分別為
,
懶是一種態度
總結
- 上一篇: xftp 百度网盘下载 (xftp-7
- 下一篇: qregexp限制数字范围_数字系统实现