用Matrix类对显示对象应用仿射变换

我们之前研究的选择、平移、旋转、缩放,其实都是仿射变换。

用Matrix类比用displayobject的rotation、scaleX等属性更容易让人明白原理

这里贴一个对一个显示对象进行x轴缩放 的例子,其他类型的仿射变换同理

var square:Sprite = new Sprite();
with (square.graphics) {
    beginFill(0x0000ff, 1);
    moveTo(100,100);
    lineTo(200,200);
    lineTo(195, 205);
    lineTo(95,105);
    lineTo(100,100);
    endFill();
}
addChild(square);
var m:Matrix = new Matrix(2.0, 0, 0, 1, 0, 0);
//方式1:注意参数顺序!并不是按矩阵表格的行列来排布!
//var m:Matrix = square.transform.matrix;
//方式2:获取源显示对象的matrix,利用Matrix类提供的接口来操作
//m.scale(2, 1);
//var m:Matrix = new Matrix();
//方式3:设置Matrix类的6个初始化属性
//m.a = 2;
//实例化一个变换
var t:Transform = new Transform(square);
//设置这个新变换的matrix属性为我们自己的矩阵
t.matrix = m;
//将该变换赋给源显示对象
square.transform = t;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值