- 浏览: 1064787 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
使用as3的绘图API绘制填充区域时,经常会涉及到相交区域的颜色填充问题。Flash Player 10 和 Adobe AIR 1.5 还引入了路径“缠绕”(即路径的方向)这一概念。路径的缠绕可以是正向的(顺时针),也可以是负向的(逆时针)。渲染器为 data 参数解释矢量所提供坐标的顺序确定了缠绕的方向。
as3中的缠绕规则分为两种:奇偶规则和非零规则,奇偶规则是标准的缠绕规则,早期的绘图 API 都使用此规则。奇偶规则也是 Graphics.drawPath() 方法的默认规则。使用奇偶缠绕规则时,任何相交路径都交替使用开放填充与闭合填充。如果使用同一填充绘制的两个正方形相交,则不会填充相交的区域。通常,相邻区域不会都填充或都不填充。另一方面,非零规则依靠缠绕(绘制方向)来确定是否填充相交路径定义的区域。当相对缠绕的路径相交时,不填充所定义的区域,这与奇偶规则十分类似。对于相同缠绕的路径,将填充本来不填充的区域。
drawpaht方法的第三个可选参数参数winding,用于指定相交路径的缠绕或填充规则。这个参数的可选项分为GraphicsPathWinding.EVEN_ODD 或GraphicsPathWinding.NON_ZERO。
EVEN_ODD 是默认行为,它指在同样的填充下,图形的重叠区域不会被填充。
NON_ZERO,则提供了更多的缠绕规则的选择,在此行为下,通过使用非零缠绕规则可以灵活控制相交区域的填充和不填充。
下面的代码演示了在NON_ZERO行为下使用非零缠绕来实现的效果:
填充相交区域:
var commands:Vector.<int>=new Vector.<int>();
var lineto:int=GraphicsPathCommand.LINE_TO;
var moveto:int=GraphicsPathCommand.MOVE_TO;
commands.push(moveto,lineto,lineto,lineto,lineto);
commands.push(moveto,lineto,lineto,lineto,lineto);
var datas:Vector.<Number>=new Vector.<Number>();
datas.push(0,0,100,0,100,20,0,20,0,0);
datas.push(50,-50,70,-50,70,50,50,50,50,-50);
var sp:Shape=new Shape();
sp.graphics.beginFill(0xff00ff);
sp.graphics.drawPath(commands,datas,GraphicsPathWinding.NON_ZERO);
sp.graphics.endFill();
sp.x=100;
sp.y=100;
addChild(sp);
通过修改其中一个图形的画线顺序,不填充相交区域:
var commands:Vector.<int>=new Vector.<int>();
var lineto:int=GraphicsPathCommand.LINE_TO;
var moveto:int=GraphicsPathCommand.MOVE_TO;
commands.push(moveto,lineto,lineto,lineto,lineto);
commands.push(moveto,lineto,lineto,lineto,lineto);
var datas:Vector.<Number>=new Vector.<Number>();
datas.push(0,0,0,20,100,20,100,0,0,0);
datas.push(50,-50,70,-50,70,50,50,50,50,-50);
var sp:Shape=new Shape();
sp.graphics.beginFill(0xff00ff);
sp.graphics.drawPath(commands,datas,GraphicsPathWinding.NON_ZERO);
sp.graphics.endFill();
sp.x=100;
sp.y=100;
addChild(sp);
红色部分的改变轻松的实现了相交区域的不填充。
drawPath路径绘图方法在实现简单的绘图时,增加了代码的行数。但是,当我们在绘制复杂的图形时,它就给我们来了意想不到的魅力,特别是在做3d透视的过程中。对3d基础引擎开发的有兴趣的朋友,可以好好了解一下drawpath的使用。
在AdvancED_ActionScript 3.0一书中,对drawpath使用有详细的阐述和实例讲解。
文章来源:http://www.flashandflex.com/html/ASDVA/Drawing/1203.html
as3中的缠绕规则分为两种:奇偶规则和非零规则,奇偶规则是标准的缠绕规则,早期的绘图 API 都使用此规则。奇偶规则也是 Graphics.drawPath() 方法的默认规则。使用奇偶缠绕规则时,任何相交路径都交替使用开放填充与闭合填充。如果使用同一填充绘制的两个正方形相交,则不会填充相交的区域。通常,相邻区域不会都填充或都不填充。另一方面,非零规则依靠缠绕(绘制方向)来确定是否填充相交路径定义的区域。当相对缠绕的路径相交时,不填充所定义的区域,这与奇偶规则十分类似。对于相同缠绕的路径,将填充本来不填充的区域。
drawpaht方法的第三个可选参数参数winding,用于指定相交路径的缠绕或填充规则。这个参数的可选项分为GraphicsPathWinding.EVEN_ODD 或GraphicsPathWinding.NON_ZERO。
EVEN_ODD 是默认行为,它指在同样的填充下,图形的重叠区域不会被填充。
NON_ZERO,则提供了更多的缠绕规则的选择,在此行为下,通过使用非零缠绕规则可以灵活控制相交区域的填充和不填充。
下面的代码演示了在NON_ZERO行为下使用非零缠绕来实现的效果:
填充相交区域:
var commands:Vector.<int>=new Vector.<int>();
var lineto:int=GraphicsPathCommand.LINE_TO;
var moveto:int=GraphicsPathCommand.MOVE_TO;
commands.push(moveto,lineto,lineto,lineto,lineto);
commands.push(moveto,lineto,lineto,lineto,lineto);
var datas:Vector.<Number>=new Vector.<Number>();
datas.push(0,0,100,0,100,20,0,20,0,0);
datas.push(50,-50,70,-50,70,50,50,50,50,-50);
var sp:Shape=new Shape();
sp.graphics.beginFill(0xff00ff);
sp.graphics.drawPath(commands,datas,GraphicsPathWinding.NON_ZERO);
sp.graphics.endFill();
sp.x=100;
sp.y=100;
addChild(sp);
通过修改其中一个图形的画线顺序,不填充相交区域:
var commands:Vector.<int>=new Vector.<int>();
var lineto:int=GraphicsPathCommand.LINE_TO;
var moveto:int=GraphicsPathCommand.MOVE_TO;
commands.push(moveto,lineto,lineto,lineto,lineto);
commands.push(moveto,lineto,lineto,lineto,lineto);
var datas:Vector.<Number>=new Vector.<Number>();
datas.push(0,0,0,20,100,20,100,0,0,0);
datas.push(50,-50,70,-50,70,50,50,50,50,-50);
var sp:Shape=new Shape();
sp.graphics.beginFill(0xff00ff);
sp.graphics.drawPath(commands,datas,GraphicsPathWinding.NON_ZERO);
sp.graphics.endFill();
sp.x=100;
sp.y=100;
addChild(sp);
红色部分的改变轻松的实现了相交区域的不填充。
drawPath路径绘图方法在实现简单的绘图时,增加了代码的行数。但是,当我们在绘制复杂的图形时,它就给我们来了意想不到的魅力,特别是在做3d透视的过程中。对3d基础引擎开发的有兴趣的朋友,可以好好了解一下drawpath的使用。
在AdvancED_ActionScript 3.0一书中,对drawpath使用有详细的阐述和实例讲解。
文章来源:http://www.flashandflex.com/html/ASDVA/Drawing/1203.html
发表评论
-
AWAY3D 贴图DEMO
2011-05-14 23:16 0AWAY3D 贴图DEMO -
[转] AS3 制作3D位图方法
2011-05-04 00:34 1459http://bbs.9ria.com/viewthread. ... -
[转] MoleHill操作AGAL的Helper类之一
2011-04-29 01:46 1059本帖最后由 sleep2death 于 2011-4-20 1 ... -
和场景里的物体交互要用InteractiveScene3D,examples里有个InteractiveBoxDemo的例子有很好的参考价值
2011-04-28 21:53 0和场景里的物体交互要用InteractiveScene3D,e ... -
[转] 使用Flare3D制作一款 a small game 的3d游戏!
2011-04-25 01:39 2058http://bbs.9ria.com/viewthread. ... -
[转] [Flash/Flex] 支持 Molehill版本的Flare3D 应用示范
2011-04-16 02:30 1232http://bbs.9ria.com/thread-7953 ... -
[转]自制flash3D变换类
2011-04-15 16:09 997http://hi.baidu.com/boycy/blog/ ... -
[转] [Flash/Flex] native3d flash 3d引擎发布molehill版
2011-04-13 22:46 1071http://bbs.9ria.com/viewth ... -
[转] [Flash/Flex] 轻量级flash3d引擎native3d rev19使用教程
2011-04-10 06:00 1079资讯类型: 原创 来 ... -
[转]2011RIA天地行主题之3D Flash3D引擎简介
2011-03-31 22:34 1787http://bbs.9ria.com/viewthread. ... -
[转]Flash Player 10' s new 3D effects(三)
2011-03-23 17:34 1568http://sjkgxf7191.iteye.com/blo ... -
[转]Flash Player 10' s new 3D effects(二)
2011-03-23 15:50 1518http://sjkgxf7191.iteye.com/blo ... -
[转]Flash Player 10' s new 3D effects(一)
2011-03-23 14:55 1342http://sjkgxf7191.iteye.com/ ... -
[转]使用Flare3D在FB中搭建第一个Molehill项目
2011-03-22 20:52 1931http://www.adobe.com/cn/devnet/ ... -
[转]M2D的介绍——针对Flash ‘Molehill’ API的GPU加速2D框架
2011-03-22 14:37 1728http://bbs.9ria.com/viewth ... -
[转]使用Away3D引擎的Flash3D推箱子游戏原型 - 最终版本
2011-03-18 22:06 1348http://bbs.9ria.com/viewthread. ... -
3D塔防
2011-03-18 18:29 03D塔防3D塔防 -
[转]Flash ‘Molehill’ API上的GPU加速2D框架-M2D
2011-03-11 02:13 0http://bbs.9ria.com/thread-75 ... -
jiglibflash--Flash 3D physics engine
2011-03-09 13:06 1560http://code.google.com/p/jiglib ... -
[转]使用CS4的新增类实现全景图效果
2011-03-08 15:32 1746http://uh.9ria.com/space-12147- ...
相关推荐
DrawPath.m
路径 画图 IOS Demo 绘图 代码实例
的应用例子,C#源代码 Point[] points = { new Point(40, 60), new Point(50, 70), new Point(30, 90)}; GraphicsPath path = new GraphicsPath(); path.StartFigure(); // Start ...
Qt 中有相当方便的绘制接口 ( 由 QPainter 提供 ) 。 例如贝塞尔曲线的 API: QPainterPath 的 quadTo() 和 cubicTo() 然后使用 QPainter::drawPath()。 然而,美中不足的是,Qt 的贝塞尔曲线只支持二次和三次,...
GDI+绘制文字使用Graphics::DrawString函数,其中的brush参数可以使用透明度,通过控制该透明度(逐渐减少从而增加透明度),实现文字的透明度逐渐增加,最终融入到背景中,达到渐变消失的效果。具体实现上,设置...
绘制路径 请注意,这是一个非常基本的程序,几乎没有使用Java的面向对象功能,它是为我的A级计算课程编写... Java GUI + lejos EV3创建一个机器人,该机器人将沿着Java GUI中的画线前进,并且实现目标不需要的其他功能
使用文字线条轮廓创建窗体,C#源代码,设定文本输出质量,创建路径区域,向区域中追加文本, //使用文字线条轮廓创建窗体 this.BackgroundImage = Image.FromFile("Water lilies.jpg"); Graphics g = this....
在棋牌游戏开发过程中遇到了这样的一个需求: 需要在一个LAYOUT层外边实现进度的显示实现时钟的功能。 在github上面搜到了android-square-progressbar这个项目,可实现在图片周围显示进度。demo地址: ...
DrawPath的效果是在编辑器内部可以看到,但是运行时没有的 每个函数的参数和DrawLine()一样,就不一一列举了。 其中DrawLine是画直线而DrawPath是画曲线路径,也是物体移动的实际路径。 函数以Gizmos结尾的和...
这是因为,反走样是一种比较复杂的算法,在一些对图像质量要求不高的应用中,是不需要进行反走样的。为了提高效率,一般的图形绘制系统,如Java2D、OpenGL之类都是默认不进行反走样的。 还有一个疑问,既然反走样...
在 Android 自定义 View 中,Path 可能用的比较多,PathMeasure 可能用的比较少,就我而言,以前也没有使用过 PathMeasure 这个 api,看到别人用 PathMeasure 和 ValueAnimator 结合在一起完成了很好的动画效果,于是...
最近老师在讲 tkinter,所以我做了一个抽奖小游戏。 一、效果图 先上效果图。红色的小球会围绕蓝色小球做环形运动。我设置的四个角是奖品,其余的都是再接再厉。 二、方法 基于tkinter中的button,text,PIL ,time....
这是在dribbble中发现的动画 这是我自己实现的效果... 总觉得我这个星球有点胖... 因为胖所以转的慢么这是.速度等细节还有优化的余地设计过程老办法,先分解动画的构成.整个动画可以看做是一个自旋的星球从右上角...
QT实现的,环境是QT Creater 4.10.1 对应的QT版本是qt5.13.2.实现的功能是打开图片,画笔功能,橡皮擦功能,保存图片
本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型...
1.4.29 LastIndexOf方法——确定字符在字符串中最后索引 70 1.4.30 Matches方法——检查字符串是否有重复的词出现 71 1.4.31 MONTH函数——返回指定日期中月部分的整数 73 1.4.32 PadLeft方法——在左边用空格填充 ...
TextPathView分为两种,一种是每个笔画按顺序刻画的SyncTextPathView,一种是每个笔画同时刻画的AsyncTextPathView,使用方法都是一样,在xml里面配置属性,然后直接在java里面调用startAnimation()方法就行了,...
最近在一个项目中需要一个像QQ打开个人爱好那样的动画效果如下图: 可以看出每个小球都是以顺时针旋转出来的,说明像这样的曲线动画用Android中自带的平移动画是很难实现的。 曲线动画怎么画??? 我们先来看看Android...
Android屏幕手写签名的原理就是把手机屏幕...在有移动操作与提起动作时调用Canvas对象的drawPath方法,将本次触摸绘制在画布上。 layout/activity_signature.xml界面布局代码如下: <LinearLayout xmlns:android=
在做仿支付宝记账本界面效果时遇到了一个问题,在环形图中点击每一个环是会显示出不同的内容,因此,必须判断用户到底点击了哪个圆环,网上查阅资料说可以根据颜色来判断,但是心里总是觉得根据颜色不是很好的解决...