计算机图形学--二维图形变换

目录

概述

平移

对称

旋转

错切

缩放


概述

        对于二维图形来讲,所有基本变换均可以通过确定图形的点的平移、对称、旋转、错切以及缩放几种变换组合得到,而在上述几种变换中,除对称变换外,其余变换均可通过点的其次坐标乘变换矩阵得到新位置坐标的方式实现。下面对这些变换方式或变换矩阵进行介绍。
假定点的坐标采取列向量形式,即用旧点坐标右乘变换矩阵得到新点坐标。

平移

        平移变换较为简单,假设x方向上的变化量为dx,y方向上的变化量为dy,那么变换结果为:x`=x+dx, y`=y+dy,那么变换矩阵可以构造为:

\begin{bmatrix} 1& 0 &0 \\ 0&1 &0 \\ dx&dy &1 \end{bmatrix}

对称

        对于对称变换来讲,直接对点进行操作就很便利了,关于x对称:y坐标取反;关于y对称:x坐标取反;关于原点对称:xy坐标均取反;关于y=x对称:xy坐标互换,关于y=-x对称:x`=-y,  y`=-x即可。

旋转

        旋转操作与基准点的选择有很大关系,我们不妨首先假定旋转中心在原点。待旋转点的坐标(x, y)且原点指向该点的向量与x轴夹角为α, 长度为l的情况下,该点计划旋转角度为β(逆时针方向为正),那么有以下各式成立:

\left\{\begin{matrix} x=l*cos\alpha \\ y=l*sin\alpha \\ x`=l*cos(\alpha +\beta )\\ y`=l*sin(\alpha +\beta) \end{matrix}\right.

 那么就有:

\left\{\begin{matrix} x`=x*cos\beta -y*sin\beta \\ y`=x*sin\beta +y*cos\beta \end{matrix}\right.

        那么变换矩阵可构造为:

\begin{bmatrix} cos\beta & sin\beta & 0\\ -sin\beta & cos\beta & 0\\ 0& 0& 1 \end{bmatrix}

        对于旋转中心不在原点的,我们可以先将旋转中心移动到原点,然后旋转,然后再变回去就可以了。

错切

        假设x方向上的错切量为sx,y方向上的错切量为sy,那么变换结果为:x`=x+sx*y, y`=y+sy*x,那么变换矩阵可以构造为:

\begin{bmatrix} 1 & sx &0 \\ sy& 1 & 0\\ 0 & 0& 1 \end{bmatrix}

缩放

        对于缩放变换,同样存在缩放中心的区别,我们这里首先对缩放中心在原点的情况进行说明,在这种情况下,假设x方向上的缩放比例为sx,y方向上的缩放比例为sy,那么变换后有:x`=sx*x, y`=sy*y,那么变换矩阵可以构造为:

\begin{bmatrix} sx &0 &0 \\ 0 & sy & 0\\ 0& 0 & 1 \end{bmatrix}

        对于缩放中心不在原点的,我们可以先将缩放中心移动到原点,然后进行缩放,然后再变回去就可以了。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值