2D图形的变换和变换矩阵

3类基本的2D图形变换:
平移:

设某点向x方向移动 dx, y方向移动 dy ,[x,y]为变换前坐标, [X,Y]为变换后坐标。
则 X = x+dx;  Y = y+dy;
以矩阵表示:
                                1    0    0
[X, Y, 1] = [x, y, 1][ 0    1    0  ] ; 
                                dx  dy  1
  1    0    0
  0    1    0   即平移变换矩阵。 
  dx  dy   1 

 旋转:

 旋转相比平移稍稍复杂:
 设某点与原点连线和X轴夹角为b度,以原点为圆心,逆时针转过a度  , 原点与该点连线长度为R, [x,y]为变换前坐标, [X,Y]为变换后坐标。
  x = Rcos(b) ; y = Rsin(b);
  X = Rcos(a+b) = Rcosacosb - Rsinasinb = xcosa - ysina; (合角公式)
  Y = Rsin(a+b) = Rsinacosb + Rcosasinb = xsina + ycosa ;

  用矩阵表示:
                                 cosa   sina  0
 [X, Y, 1] = [x, y, 1][-sina  cosa  0  ] 
                                    0        0     1
  cosa   sina  0
 -sina  cosa  0  为旋转变换矩阵。
   0       0     1 

 缩放

 设某点坐标,在x轴方向扩大 sx倍,y轴方向扩大 sy倍,[x,y]为变换前坐标, [X,Y]为变换后坐标。
 X = sx*x; Y = sy*y;
则用矩阵表示:
                                sx    0    0
[X, Y, 1] = [x, y, 1][ 0    sy    0  ] ; 
                                0     0     1
 sx    0    0
 0    sy    0  即为缩放矩阵。 
 0     0     1

 所有的复杂2D模型视图变换,都可以分解成上述3个。
 注意:矩阵乘法不满足交换律。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值