二维空间里的简单矩形变换(平移、按比例缩放、旋转、对称、错切)

    今天yogurt和大家分享的是计算机图形学里算是最基础的一个内容——二维空间里的简单矩形变换,变换方式包括平移、按比例缩放、旋转、对称和错切。下一章yogurt分享了《三维空间里的简单的长方体透视变换》http://www.cnblogs.com/to-sunshine/p/6501208.html,想要进一步学习图形的各种变换的同学可以去简单学习一下。那么,按照惯例yogurt又要给大家普及知识点啦~~

---------------------------------------------------------yogurt小课堂开课啦--------------------------------------------------

    在线性代数里我们学过矩阵的基本运算,它在空间图形的变换中起着尤为关键的作用。我们把二维空间的每一个点的坐标记为(x,y,1),三维空间的每一个点的坐标记为(x,y,z,1);对于二维空间其变换矩阵是一个3X3的矩阵:;而三维空间的变换矩阵是一个4X4的矩阵:,具体的矩阵乘法怎么计算的在这里我就不讲啦。

    对于二维空间来说,各种变换矩阵如下:

(1)平移:,有: *

 

(2)按比例缩放:,有 * =

 

(3)旋转:,该点绕原点O逆时针旋转了θ角度。

 

 

(4)对称:

    以X轴对称:,有 * =

 

    以Y轴对称:,有 =

 

    以原点O对称:,有 =

 

    以Y=X对称:,有 =

 

    以Y=-X对称:,有 =

 

(5)错切:,有 =

-------------------------------------------------------------下课啦---------------------------------------------------------------

 

接下来,yogurt说一下程序的整体思路就直接上代码啦:

    首先在主函数里,是用户依次输入原始矩形的四个点后,程序会将该原始矩形绘制出来;然后根据用户输入的变换需求,程序进入到不同的变换函数中。每一个变换函数会根据自己的变换性质提示用户输入控制变换的数据,然后程序生成对应的变换矩阵,将矩形的每一个点与变换矩阵做矩阵乘法即可得到每一个点在变换后的坐标。最后根据变换后的坐标画出变换后的矩阵即可。

    代码如下:(我直接使用了我老师给的画图程序,"Graph.cpp”)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值