码迷,mamicode.com
首页 > 其他好文 > 详细

二维与三维坐标变换

时间:2021-05-24 15:09:31      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:begin   目的   display   变换   mat   二维   class   几何   加法   

二维几何变换

齐次坐标

  • 齐次坐标就是用n+1维矢量表示n维矢量,\(p(x,y)\)的齐次坐标表示为\((wx,wy,w)=(X,Y,w)\)
  • 二维规范化齐次坐标:\(w=1\)时,\(p(x,y,1)\)
  • 类似三维规范化齐次坐标为\((x,y,z,1)\)
  • 齐次坐标的目的:避免了平移变换使用矩阵加法运算,是为了规范化编程。

平移变换

\[ \left [\begin{matrix} x^` \y^` \1 \end{matrix}\right ]= \left [\begin{matrix} x+T_x \y+T_y \1 \end{matrix}\right ]= \left [\begin{matrix} 1 & 0 & T_x \0 & 1 & T_y \0 & 0 &1 \end{matrix}\right ] \left [\begin{matrix} x \y \1 \end{matrix}\right ] \]

比例变换

\[ \left [\begin{matrix} x^` \y^` \1 \end{matrix}\right ]= \left [\begin{matrix} xS_x \yS_y \1 \end{matrix}\right ]= \left [\begin{matrix} S_x & 0 & 0 \0 & S_y & 0 \0 & 0 & 1 \end{matrix}\right ] \left [\begin{matrix} x \y \1 \end{matrix}\right ] \]

旋转变换

\[ \left [\begin{matrix} x^` \y^` \1 \end{matrix}\right ]= \left [\begin{matrix} xcos\beta-ysin\beta \xsin\beta+ycos\beta \1 \end{matrix}\right ]= \left [\begin{matrix} cos\beta & -sin\beta &0 \sin\beta & cos\beta & 0 \0 & 0 & 1 \end{matrix}\right ] \left [\begin{matrix} x \y \1 \end{matrix}\right ] \]

三维变换

三维变换矩阵

\[ T= \left [ \begin{matrix} a & b & c & l \d & e & f & m \g & h & i & n \p & q & r & s \end{matrix} \right] \]

其中:

  • 比例、旋转、反射、错切变换:

\[ T_1= \left[\begin{matrix} a & b & c \d & e & f \g & h & i \end{matrix}\right] \]

比例变换	

\[ T= \left [ \begin{matrix} S_x & 0 & 0 & 0 \0 & S_y & 0 & 0 \0 & 0 & S_z & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

绕x轴旋转变换	

\[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \0 & cos\beta & -sin\beta & 0 \0 & sin\beta & cos\beta & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

绕y轴旋转变换	

\[ T= \left [ \begin{matrix} cos\alpha & 0 & sin\alpha & 0 \0 & 1 & 0 & 0 \-sin\alpha & 0 & cos\alpha & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

绕z轴旋转变换	

\[ T= \left [ \begin{matrix} cos\gamma & -sin\gamma & 0 & 0 \sin\gamma & cos\gamma & 0 & 0 \0 & 0 & 1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

关于x轴的反射	

\[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \0 & -1 & 0 & 0 \0 & 0 & -1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

关于y轴的反射	

\[ T= \left [ \begin{matrix} -1 & 0 & 0 & 0 \0 & 1 & 0 & 0 \0 & 0 & -1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

关于z轴的反射	

\[ T= \left [ \begin{matrix} -1 & 0 & 0 & 0 \0 & -1 & 0 & 0 \0 & 0 & 1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

沿x方向错切	

\[ T= \left [ \begin{matrix} 1 & b & c & 0 \0 & 1 & 0 & 0 \0 & 0 & 1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

沿y方向错切	

\[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \d & 1 & f & 0 \0 & 0 & 1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

沿z方向错切	

\[ T= \left [ \begin{matrix} 1 & 0 & 0 & 0 \0 & 1 & 0 & 0 \g & h & 1 & 0 \0 & 0 & 0 & 1 \end{matrix} \right] \]

  • 平移变换:

\[ T_2= \left[\begin{matrix} l \m \n \end{matrix}\right] \]

\[ T= \left [ \begin{matrix} 1 & 0 & 0 & T_x\0 & 1 & 0 & T_y \0 & 0 & 1 & T_z \0 & 0 & 0 & 1 \end{matrix} \right] \]

  • 投影变换:

\[ T_3= \left[\begin{matrix} p & q & r \end{matrix}\right] \]

立方体建模

  • 边界标识法:定义顶点表示几何信息,定义面表示拓扑信息

二维与三维坐标变换

标签:begin   目的   display   变换   mat   二维   class   几何   加法   

原文地址:https://www.cnblogs.com/brilliantM/p/14782171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!