egret.Shape渲染集合图形
代码:

class Main extends egret.DisplayObjectContainer
{
public constructor()
{
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE,this.onAddToStage,this);
}
//绘制直线
private onAddToStage(event:egret.Event)
{
var shp:egret.Shape = new egret.Shape();
shp.graphics.lineStyle( , 0x00ff00 );
shp.graphics.moveTo( , );
shp.graphics.lineTo( , );
shp.graphics.endFill();
this.addChild( shp );
}
}
2.
class EgretBookScr extends egret.DisplayObjectContainer {
private logo: egret.Bitmap;
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.startGame, this);
}
public startGame(): void {
//alert("hello world");
this.createGameScene();
}
private createGameScene():void{
//创建一个Shape对象
var circle:egret.Shape = new egret.Shape();
//1:参数1:一个整数,以点为代为表示线段的粗细,有效值为(0--255);若未指定该参数,则不绘制线条,为0,表示极细;
//若值大于255,则默认值是255
//参数2:指定一种线条样式,用于对lineto或drawcircle等Graphics方法的调用
circle.graphics.lineStyle(,0xffffff);
//参数:填充颜色(简单的单色填充)、透明度?
//调用clear会清楚填充
circle.graphics.beginFill(0x00ff00,0.8);
//(x:number,y:number,radius:number):x:圆心相对于父显示对象注册点的x位(以像素为单位) 绘制一个圆
circle.graphics.drawCircle(,,);//此时会显示右下部分的1/4的圆,因为xy的值
circle.graphics.drawCircle(,,);//若上一句代码不注释,显示的图形类似水滴;
circle.graphics.endFill();
this.addChild(circle);
}
}
class Main extends egret.DisplayObjectContainer
{
public constructor()
{
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE,this.onAddToStage,this);
}
//绘制圆弧的方法 private onAddToStage(event:egret.Event)
{
var shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill( 0x1122cc );
//drawArc(x:number,y:number,radius:number,startAngle:number,endAngle:number,anticlockwise:boolean):void
//圆弧路径的圆心在(x,y) 半径为radius 。anticlockwise参数为true,则逆时针绘制圆弧;否则为顺时针绘制
shp.graphics.drawArc(,,,,Math.PI,true);
shp.graphics.endFill();
this.addChild( shp );
}
}
完整的绘制:
class ShapeTest extends egret.DisplayObjectContainer {
public constructor() {
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
}
private onAddToStage(event: egret.Event) {
this.drawRect(event);
this.drawCircle(event);
this.drawLine(event);
this.drawCurve(event);
this.drawArc(event);
this.drawTest(event);
}
//绘制矩形
private drawRect(evt: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.graphics.lineStyle(, 0x00ff00);//第一个参数:描边的线条宽度,第二个参数是描边的颜色
shp.graphics.beginFill(0xff0000, 0.8);//red 设置矩形的填充颜色,第二个参数是透明度;1表示透明度
shp.graphics.drawRect(, , , );//设置矩形的形状,绘制的是100*200的矩形
shp.graphics.lineStyle(, 0x00ff00);//无作用
shp.graphics.endFill();//结束当前绘制操作 若要对矩形加描边,可以设置线条的样式
//通关lineStyle方法来设置 代码需要放在绘制代码之前,否则无效,且不报错
this.addChild(shp);
///////////////////////清空绘制:将已经绘制的图像全部清空,清除一个对象的绘图////////////////////////////////////////////////
//shp.graphics.clear();
}
//绘制圆形
private drawCircle(event: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.x = ;
shp.y = ;
shp.graphics.lineStyle(, 0x00ff00);
shp.graphics.beginFill(0xff0000, );
shp.graphics.drawCircle(, , );//相对于父显示对象注册点的圆心的X轴位置,Y轴坐标值,圆的半径以像素为单位
shp.graphics.endFill();//结束当前绘制操作 若要对矩形加描边,可以设置线条的样式
//通关lineStyle方法来设置 代码需要放在绘制代码之前,否则无效,且不报错
this.addChild(shp);
}
//绘制直线需要使用两个方法,一个绘制起始点,另一个负责绘制直线的终点;
private drawLine(evt: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.graphics.lineStyle(, 0x00ff00);
shp.graphics.moveTo(, );//将当前绘图位置移动到(x,y)/若缺少任一参数,该方法失效,则当前绘图位置不变
shp.graphics.lineTo(, );//直线结束的(x,y) //c此时为竖直的一个线段,若要连续的线段,形成折线
//绘制首尾相接的直线,后边连续使用lineTo即可
shp.graphics.moveTo(, );
shp.graphics.lineTo(, );
shp.graphics.lineTo(, );
shp.graphics.lineTo(, );
shp.graphics.endFill();
this.addChild(shp);
}
//绘制曲线
//Egret 提供的曲线是一个二次贝塞尔曲线,绘图方法curveTo
private drawCurve(evt: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.graphics.lineStyle(, 0xff0000);
shp.graphics.moveTo(, );
shp.graphics.curveTo(, , , );
shp.graphics.endFill();
this.addChild(shp);
}
//绘制圆弧
//Egret 提供的弧形绘图方法drawArc
private drawArc(evt: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.graphics.beginFill(0x1122cc);
shp.graphics.drawArc(, , , , Math.PI, false);//圆心位置(x,y);radius;anticlockwise:true:逆时针绘制圆弧
shp.graphics.endFill();
this.addChild(shp);
}
//多个图形绘制
//相互是独立的,每次绘制填充都必须以endfill结束,才能开始下次绘制
//绘制4个正方形小格子
private drawTest(evt: egret.Event) {
var shp: egret.Shape = new egret.Shape();
shp.graphics.beginFill(0xff0000, 0.8);
shp.graphics.drawRect(, , , );
shp.graphics.endFill();
shp.graphics.beginFill(0x00ff00, 0.8);
shp.graphics.drawRect(, , , );
shp.graphics.endFill();
shp.graphics.beginFill(0x0000ff, 0.8);
shp.graphics.drawRect(, , , );
shp.graphics.endFill();
shp.graphics.beginFill(0x0000cc, 0.8);
shp.graphics.drawRect(, , , );
shp.graphics.endFill();
this.addChild(shp);
}
}
egret.Shape渲染集合图形的更多相关文章
- [转]Android Shape渲染的使用(经典,学习研究不后悔)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.51cto.com/1823534/1215749 ...
- WPF学习04:2D绘图 使用Shape绘基本图形
我们将使用Shape进行基本图形绘制. 例子 一个可移动的矩形方框: XAML代码: <Window x:Class="Shape.MainWindow" xmlns=&qu ...
- OpenCV绘制朱利亚(Julia)集合图形
朱利亚集合是一个在复平面上形成分形的点的集合.以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名. 朱利亚集合可以由下式进行反复迭代得到: 对于固定的复数c,取某一z值(如z = z0) ...
- OpenGL ES 渲染立体图形
一.理解 顶点数据存储在申请的缓冲区中,其由数据总线传递给着色器(如果是片元着色器,还须将顶点转换成片元),再由着色器最终渲染到涂层上: 二.思路 1.设置涂层: 2.创建上下文: 3.清空缓存区: ...
- html5 绘制集合图形
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- CUDA+OpenCV 绘制朱利亚(Julia)集合图形
Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速.对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个 ...
- Mandelbrot集合及其渲染
什么是Mandelbrot集合? Mandelbrot集合是在复数平面上组成分形的点的集合,它正是以数学家Mandelbrot命名. Mandelbrot集合可以用复二次多项式 \[ f_c(z)=z ...
- Egret的Shape
class ShapeTest extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...
- 三星a9上测试egret与pixi.js的渲染性能
for (let i = 0; i < 500; i++) { let shape = new egret.Shape(); shape.graphics.beginFill(0xff0000) ...
随机推荐
- Mac Mojave(10.14.1)执行Matlab的mex报错
先装了matlab2018b,发现很频繁的crash,同时考虑到要跑的代码在>=2017a时就计算错误,于是转战matlab2016b matlab2016b安装后,执行mex -setup报错 ...
- bzoj4059
题解: 还是一道不错的题目 首先它要求每个区间都满足要求,所以我们很容易想到将它映射到二维平面上 然后我们算出每个数的前驱以及后继li,ri 那么第一维是li-i,第二维是i-ri的区间就是合法的,同 ...
- [转]Maven与nexus关系
开始在使用Maven时,总是会听到nexus这个词,一会儿maven,一会儿nexus,当时很是困惑,nexus是什么呢,为什么它总是和maven一起被提到呢? 我们一步一步来了解吧. 一.了解Mav ...
- Docker技术底层架构剖析
[Docker 底层技术] docker底层的 2 个核心技术分别是 Namespaces 和 Control groups 在操作系统中,网络配置,进程,用户,IPC(进程之间的调用)等信息之间的 ...
- Python学习(二十八)—— Django模板系统
转载自http://www.cnblogs.com/liwenzhou/p/7931828.html Django模板系统 官方文档 一.常用语法 只需要记两种特殊符号: {{ }}和 {% %} ...
- playbook role应用
参考: ansible中文权威指南 1. 动态Include 结合when等判断,在满足某个条件的时候加载. - include: test.yml when: ...... handler 中也可以 ...
- 桐桐的数学游戏(N皇后)
题目描述 相信大家都听过经典的“八皇后”问题吧?这个游戏要求在一个8×8的棋盘上放置8个皇后,使8个皇后互相不攻击(攻击的含义是有两个皇后在同一行或同一列或同一对角线上). 桐桐对这个游戏很感兴趣,也 ...
- Ubuntu + 坚果云
下载 nautilus_nutstore_amd64.deb sudo dpkg -i nautilus_nutstore_amd64.deb # 运行后,会提示缺少依赖包 sudo apt-get ...
- html-form
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- stm32中断优先级管理与外部中断编程
stm32中断优先级管理与外部中断编程 中断优先级管理 外部中断编程 官方示例程序 exti.h #ifndef __EXTI_H #define __EXIT_H #include "sy ...