AS3位图任意形变

1.Matirx    

位移,缩放,平行扭区

 1 var matrix:Matrix = new Matrix();
 2 //x方向平移100,y方向平移200
 3 matrix.translate(100, 200);           
 4 //matrix.tx = 100;
 5 //matrix.ty = 200;
 6 //x方向缩放0.5,y方向缩放0.5
 7 matrix.scale(0.5, 0.5); 
 8 //matrix.a = 0.5;
 9 //matrix.d = 0.5;
10 //顺时针方向旋转45度
11 matrix.rotate(Math.PI/4);
12 //matrix.a = 0.707107;
13 //matrix.b = 0.707107;
14 //matrix.c = -0.707107;
15 //matrix.d = 0.707107;
16 bmp.transform.matrix = matrix;

 矩阵形变只能控制位移,绽放以及平行扭曲,记住扭区仅限于平行方向,如果需要四角任意拉伸,就需要三角形变了。

2.Graphics.drawTriangles()

drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void
 1 var canvas:Sprite = new Sprite();
 2 var vec:Vector.<Number> = new Vector.<Number>();
 3 vec.push(0,0,-40,180,250,180,210,0);
 4 var uvt:Vector.<Number> = new Vector.<Number>();
 5 uvt.push(0,0,0,1,1,1,1,0);
 6 var indices:Vector.<int> = new Vector.<int>();
 7 indices.push(0,1,2,3,2,0);
 8 canvas.graphics.beginBitmapFill(new bd());
 9 canvas.graphics.drawTriangles(vec,indices,uvt);
10 canvas.graphics.endFill();
11 canvas.x = 200;
12 canvas.y =100;
13 addChild(canvas);

官方文档参考:http://help.adobe.com/zh_CN/as3/dev/WS84753F1C-5ABE-40b1-A2E4-07D7349976C4.html

posted on 2013-05-24 13:40  苍蝇也是鸟  阅读(243)  评论(0编辑  收藏  举报

导航