一般情况的三维旋转矩阵
2015-08-12 08:08
148 查看
旋转矩阵
在三维空间,有时需要计算一般位置的三维旋转矩阵。假设旋转轴的方向是(a,b,c)(a,b,c),旋转轴经过 (x,y,z)(x,y,z)点,反时针旋转角度为 θ\theta,则用齐次坐标表示的旋转矩阵是这样的:直接用 LATEX\LaTeX 代码无法完整显示:
⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜a2+(b2+c2)cosθa2+b2+c2csinθa2+b2+c2√−ab(cosθ−1)a2+b2+c2−ac(cosθ−1)a2+b2+c2−bsinθa2+b2+c2√0−ab(cosθ−1)a2+b2+c2−csin(θ)a2+b2+c2√b2+(a2+c2)cos(θ)a2+b2+c2asinθa2+b2+c2√−bc(cosθ−1)a2+b2+c20bsinθa2+b2+c2√−ac(cosθ−1)a2+b2+c2−bc(cosθ−1)a2+b2+c2−asinθa2+b2+c2√c2+(a2+b2)cosθa2+b2+c202sinθ2((a2+b2+c2)(cy−bz)cosθ2+a2+b2+c2√(xb2−ayb+c(cx−az))sinθ2)(a2+b2+c2)3/22sinθ2((a2+b2+c2)(az−cx)cosθ2+a2+b2+c2√(ya2−bxa+c(cy−bz))sinθ2)(a2+b2+c2)3/22sinθ2((−a2−b2−c2)(ay−bx)cosθ2+a2+b2+c2√((a2+b2)z−c(ax+by))sinθ2)(a2+b2+c2)3/21⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟\left(\begin{array}{cccc}
\frac{a^2+\left(b^2+c^2\right)\cos{\theta}}{a^2+b^2+c^2}&-\frac{ab(\cos{\theta}-1)}{a^2+b^2+c^2}-\frac{c\sin(\theta
)}{\sqrt{a^2+b^2+c^2}}&\frac{b\sin{\theta}}{\sqrt{a^2+b^2+c^2}}-\frac{ac(\cos{\theta}-1)}{a^2+b^2+c^2}&\frac{2\sin{\tfrac{\theta}{2}}\left(\left(a^2+b^2+c^2\right)(c\text{y}-b\text{z})\cos{\tfrac{\theta}{2}}+\sqrt{a^2+b^2+c^2}\left(\text{x}b^2-a\text{y}b+c(c\text{x}-a\text{z})\right)\sin{\tfrac{\theta}{2}}\right)}{\left(a^2+b^2+c^2\right)^{3/2}}\\
\frac{c\sin{\theta}}{\sqrt{a^2+b^2+c^2}}-\frac{ab(\cos{\theta}-1)}{a^2+b^2+c^2}&\frac{b^2+\left(a^2+c^2\right)\cos(\theta)}{a^2+b^2+c^2}&-\frac{bc(\cos{\theta}-1)}{a^2+b^2+c^2}-\frac{a\sin{\theta}}{\sqrt{a^2+b^2+c^2}}&\frac{2\sin{\tfrac{\theta}{2}}\left(\left(a^2+b^2+c^2\right)(a\text{z}-c\text{x})\cos{\tfrac{\theta}{2}}+\sqrt{a^2+b^2+c^2}\left(\text{y}a^2-b\text{x}a+c(c\text{y}-b\text{z})\right)\sin{\tfrac{\theta}{2}}\right)}{\left(a^2+b^2+c^2\right)^{3/2}}\\
-\frac{ac(\cos{\theta}-1)}{a^2+b^2+c^2}-\frac{b\sin{\theta}}{\sqrt{a^2+b^2+c^2}}&\frac{a\sin{\theta}}{\sqrt{a^2+b^2+c^2}}-\frac{bc(\cos{\theta}-1)}{a^2+b^2+c^2}&\frac{c^2+\left(a^2+b^2\right)\cos{\theta}}{a^2+b^2+c^2}&\frac{2\sin{\tfrac{\theta}{2}}\left(\left(-a^2-b^2-c^2\right)(a\text{y}-b\text{x})\cos{\tfrac{\theta}{2}}+\sqrt{a^2+b^2+c^2}\left(\left(a^2+b^2\right)\text{z}-c(a\text{x}+b\text{y})\right)\sin{\tfrac{\theta}{2}}\right)}{\left(a^2+b^2+c^2\right)^{3/2}}\\
0&0&0&1\\
\end{array}
\right)
图片显示:
变换形式,直接用 LATEX\LaTeX 代码无法完整显示:
⎡⎣⎢⎢⎢⎢⎢a2+(b2+c2)cosθab(1−cosθ)+ca2+b2+c2−−−−−−−−−−√sinθac(1−cosθ)−ba2+b2+c2−−−−−−−−−−√sinθ0ab(1−cosθ)−ca2+b2+c2−−−−−−−−−−√sinθb2+(a2+c2)cosθbc(1−cosθ)+aa2+b2+c2−−−−−−−−−−√sinθ0ac(1−cosθ)+ba2+b2+c2−−−−−−−−−−√sinθbc(1−cosθ)−aa2+b2+c2−−−−−−−−−−√sinθc2+(a2+b2)cosθ0\small\left[
\begin{array}{ccc}
a^2+(b^2+c^2)\cos\theta & a b (1-\cos\theta)-c\sqrt{a^2+b^2+c^2}\sin\theta & ac(1-\cos\theta)+b\sqrt{a^2+b^2+c^2}\sin\theta \\
a b (1-\cos\theta)+ c\sqrt{a^2+b^2+c^2}\sin\theta & b^2+(a^2+c^2)\cos\theta & bc(1-\cos\theta)-a\sqrt{a^2+b^2+c^2}\sin\theta \\
ac(1-\cos\theta)-b\sqrt{a^2+b^2+c^2}\sin\theta & bc(1-\cos\theta)+a\sqrt{a^2+b^2+c^2}\sin\theta & c^2+(a^2+b^2)\cos\theta \\
0&0&0\\
\end{array}
\right.
((b2+c2)x−a(by+cz))(1−cosθ)+(cy−bz)a2+b2+c2−−−−−−−−−−√sinθ((a2+c2)y−b(ax+cz))(1−cosθ)+(az−cx)a2+b2+c2−−−−−−−−−−√sinθ(c(ax+by)−(a2+b2)z)(1−cosθ)+(bx−ay)a2+b2+c2−−−−−−−−−−√sinθa2+b2+c2⎤⎦⎥⎥⎥⎥⎥×1a2+b2+c2\small\left.
\begin{array}{c}
((b^2+c^2)x-a(by+cz))(1-\cos\theta)+(cy-bz)\sqrt{a^2+b^2+c^2}\sin\theta\\
((a^2+c^2)y-b(ax+cz))(1-\cos\theta)+(az-cx)\sqrt{a^2+b^2+c^2}\sin\theta\\
(c(ax+by)-(a^2+b^2)z)(1-\cos\theta)+(bx-ay)\sqrt{a^2+b^2+c^2}\sin\theta\\
a^2+b^2+c^2\\
\end{array}
\right]\times\dfrac{1}{a^2+b^2+c^2}
图片换行显示4×44\times 4矩阵之一:
图片换行显示4×44\times 4矩阵之二:
相关文章推荐
- 杭电ACM2044java做法
- jquery动态添加、删除class样式
- Problem 2020 组合(FOJ)
- 设计模式 它 中间人
- vim note(3)
- 黑马程序员——C语言笔记之数组
- Sqlite学习笔记(一)&&编译安装
- 34.tableView的编辑
- 一小时内破解16位强密码
- 修改Tomcat内存大小
- 学英语从背单词开始,但背单词要适可而止
- 零基础学python-2.9 代码块与缩进
- 零基础学python-2.8 字典
- 零基础学python-2.8 字典
- 零基础学python-2.9 代码块与缩进
- 30个糟糕的程序员抵不过一款好工具
- 结构体,联合体,内存分配
- Node.js详细解析
- 解析大型.NET ERP系统 多国语言实现
- CSS hack