AS3中不规则四边形的图片填充方法
来源:互联网 发布:唯品会快递配送网络 编辑:程序博客网 时间:2024/03/29 13:16
最近在一个Flex项目需要在一些不规则的四边形填充背景图形,在网上狂google一把,发现Flash绘画API中的drawTriangles函数可以很好解决这个问题,我们可以通过绘制两个三角形组成一个四边形,drawTriangles的接口参数如下:
drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void
vertices 参数。该参数是由定义坐标的数字组成的矢量,通过该矢量即可绘制三角形。每三组坐标(六个数字)表示一个三角形路径。如果没有 indices 参数,矢量的长度应始终为六的倍数,因为每个三角形都需要三对坐标(三组 x/y 值对)。
indices 参数,indices 值表示是vertices参数中点的索引,它能让我们控制画三角形时所用的顶点。
uvtData参数,表示影响位图映射于三角形的三个值,具体代码如下:
public function setBitmap(wall:String,imgUrl:String):void{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.load(new URLRequest(imgUrl));
function onComplete(e:Event):void{
graphics.lineStyle(0, 0, 0);
graphics.beginFill(0xFF0000);
var startPos:Point3D = new Point3D(0,0,0);
var linetoPos:Point3D;
var vertices:Vector.<Number> = new Vector.<Number>();
var uvtData:Vector.<Number> = new Vector.<Number>();
var bm:Bitmap = Bitmap(loader.content);
vertices.push(IsoUtils.isoToScreen(startPos).x,IsoUtils.isoToScreen(startPos).y);
linetoPos = Math3D.add(startPos,new Point3D(0,-_vy*_size,0));
vertices.push(IsoUtils.isoToScreen(linetoPos).x,IsoUtils.isoToScreen(linetoPos).y);
linetoPos = Math3D.add(startPos,new Point3D(0,-_vy*_size,_vz*_size));
vertices.push(IsoUtils.isoToScreen(linetoPos).x,IsoUtils.isoToScreen(linetoPos).y);
linetoPos = Math3D.add(startPos,new Point3D(0,0,_vz*_size));
vertices.push(IsoUtils.isoToScreen(linetoPos).x,IsoUtils.isoToScreen(linetoPos).y);
uvtData.push(1, 1);
uvtData.push(1, 0);
uvtData.push(0, 0);
uvtData.push(0, 1);
graphics.beginBitmapFill(bm.bitmapData);
graphics.drawTriangles(vertices,Vector.<int>([0,1,3, 1,3,2]),uvtData);
graphics.endFill();
}
}
效果:
- AS3中不规则四边形的图片填充方法
- 不规则四边形的平行四边形化
- cocos2d-x画不规则四边形图片
- 在VB6.0中实现大面积不规则区域的填充
- MFC中如何在不规则的区域内填充颜色
- 获取图片中不规则形状的一部分
- VISIO,不规则封闭图形填充方法
- VISIO 2010,不规则封闭图形填充方法
- 计算机图形学(三)_图元的属性_13_ 不规则边界区域的填充方法
- 两种AS3加载图片的方法
- 两种AS3加载图片的方法
- as3加载外部图片的方法详解
- jasperreports中图片的填充方式
- as3从一个大位图中读取各小块的图片的方法
- Android中不规则图片按钮透明区域的点击效果
- Excel中使用填充命令填充数据的方法
- as3读取xml中CDATA的方法
- as3中String的splite方法问题
- 水池排水自动控制 请设计PLC控制梯形图
- WSAEventSelect 模型的实现
- VC++.Net在Release方式下单步调试时需要修改一些设置,否则变量会有错位或乱码
- Synchronized wait notify
- fmt:formatDate的输出格式
- AS3中不规则四边形的图片填充方法
- 手机
- TeX/LaTeX: 页面设置及常见段落格式的设定
- 107个常用Javascript语句
- 怎么坚持?
- C++ 初学者指南 第八篇(3)
- poj 1789(最小生成树)
- EDLinux---xampp架构下安装wordpress
- JS小练习-电子邮件地址验证