计算机图形学——第七章

二维几何变换

一、基本的二维几何变换

1、二维平移

平移:通过位移量加点坐标形成新的点坐标

平移距离(tx,ty)称为平移向量或位移向量,矩阵二维平移方程

P =  \begin{bmatrix}x \\y \end{bmatrix}   P’ =  \begin{bmatrix}x’ \\y’\end{bmatrix}   T =  \begin{bmatrix}t_{x} \\t_{y} \end{bmatrix}

P’ = P + T

2、二维旋转

旋转:通过指定一个旋转轴和一个旋转角度实现旋转

\theta 是旋转角

x' = x\cos \theta - y\sin \theta         y' = x\sin \theta + y\cos \theta

P’ = R\cdot  T

R =  \begin{bmatrix}\cos \theta && -\sin \theta    \\\sin \theta && \ cos \theta   \end{bmatrix}

3、二维缩放

通过缩放系数与坐标相乘而得:

 \begin{bmatrix}x’ \\y’\end{bmatrix}  =   \begin{bmatrix}s_{x} && 0 \\0 && s_{y} \end{bmatrix} \cdot  \begin{bmatrix}x \\y \end{bmatrix}

P’  = S \cdot  P

系数大于1是放大小于1就是缩放,当缩放系数不等就是常见的差值缩放

二、矩阵表示和齐次坐标

矩阵表示便于我们通过矩阵的乘积,将任意的序列组成复合变换矩阵

将二维的坐标(x, y)扩充到三维(Xh,Yh,h),称为齐次坐标,齐次参数 h 是一个非零的。

二维齐次坐标(h*x, h*y, h) 最简单的把h设置成1。

二维复合变换像复合平移、复合旋转、复合缩放,基于某个点的旋转或缩放,基于某个方向的缩放。

自我理解就将平移,旋转,缩放,按需要的顺序就行矩阵的乘积,最后得到的结果,与二维坐标矩阵乘,就能得到变化后的二维坐标矩阵

三、其他的二维变换

上表面提到的是大多数图形软件包都会提供的基本变换,有些软件包提供一些其他的变化:反射跟错切

沿着x轴变换:  \begin{bmatrix}1 & 0 & 0 \\0 & -1 & 0\\0 & 0 & 1 \end{bmatrix} 沿着y轴变换: \begin{bmatrix}-1 & 0 & 0 \\0 & 1 & 0\\0 & 0 & 1 \end{bmatrix} 沿着坐标原点变换:  \begin{bmatrix}-1 & 0 & 0 \\0 & -1 & 0\\0 & 0 & 1 \end{bmatrix}

关于平面内任意直线y = mx + b的反射,都可以用平移-旋转-反射变换的形式完成。

错切:是一种使对象形状发生变换的变换。

相对于其他方向x方向的错切: \begin{bmatrix}1 & sh_{x}& -sh_{x}\cdot y_{ref}  \\0 & -1 & 0\\0 & 0 & 1 \end{bmatrix} 相对于其他方向y方向的错切: \begin{bmatrix}1 & 0& 0  \\sh_{y} & 1 & -sh_{y}\cdot x_{ref}\\0 & 0 & 1 \end{bmatrix}

几何变化的光栅方法

通过对矩形像素组的光栅功能叫光栅操作

平移:将所有在矩形区域显示的位作为一个块而复制到光栅的另一个部分。通过使用背景亮度填充该块,删除原始对象。

旋转:将每个目标区域映射到旋转的网格中计算其与旋转的像素区域的重叠量,然后对覆盖的源像素亮度的平均值,并通过区域重叠的百分比加权计算目标像素值。

缩放:用指定的s_{x}s_{y}值对原始块中的像素区域进行缩放,并将缩放的矩形映射到一组目标像素上,然后按其缩放像素区域的重叠区域,设置目标像素。

四、二维坐标系间的变换

图形学应用经常需要从在场景处理的各阶段将对象的描述从一个坐标系到另一个坐标系。

从一个笛卡尔坐标系到另一个的转换的变换分两步:

1、将x'y'系统的坐标原点(x_{0}y_{0})平移到xy系统的原点(0,0)

2、将x'轴旋转到x轴上

T(-x_{0}-y_{0}) =  \begin{bmatrix}1 & 0 & -x_{0} \\0 & 1 & -y_{0}\\0 & 0 & 1 \end{bmatrix}    R(-\theta ) =  \begin{bmatrix}\cos \theta && \sin \theta  && 0 
 \\ -\sin \theta && \ cos \theta  && 0
\\ 0 && 0 && 1 \end{bmatrix}   

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容