代码:

 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渲染集合图形的更多相关文章

  1. [转]Android Shape渲染的使用(经典,学习研究不后悔)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.51cto.com/1823534/1215749 ...

  2. WPF学习04:2D绘图 使用Shape绘基本图形

    我们将使用Shape进行基本图形绘制. 例子 一个可移动的矩形方框: XAML代码: <Window x:Class="Shape.MainWindow" xmlns=&qu ...

  3. OpenCV绘制朱利亚(Julia)集合图形

    朱利亚集合是一个在复平面上形成分形的点的集合.以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名. 朱利亚集合可以由下式进行反复迭代得到: 对于固定的复数c,取某一z值(如z = z0) ...

  4. OpenGL ES 渲染立体图形

    一.理解 顶点数据存储在申请的缓冲区中,其由数据总线传递给着色器(如果是片元着色器,还须将顶点转换成片元),再由着色器最终渲染到涂层上: 二.思路 1.设置涂层: 2.创建上下文: 3.清空缓存区: ...

  5. html5 绘制集合图形

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  6. CUDA+OpenCV 绘制朱利亚(Julia)集合图形

    Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速.对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个 ...

  7. Mandelbrot集合及其渲染

    什么是Mandelbrot集合? Mandelbrot集合是在复数平面上组成分形的点的集合,它正是以数学家Mandelbrot命名. Mandelbrot集合可以用复二次多项式 \[ f_c(z)=z ...

  8. Egret的Shape

    class ShapeTest extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...

  9. 三星a9上测试egret与pixi.js的渲染性能

    for (let i = 0; i < 500; i++) { let shape = new egret.Shape(); shape.graphics.beginFill(0xff0000) ...

随机推荐

  1. Elasticsearch集群

    详细Elasticsearch安装: https://www.cnblogs.com/littlehb/p/8406378.html 安装之前需先优化内核: https://www.cnblogs.c ...

  2. javascript 对象(四)

    一.对象概述 对象中包含一系列的属性,这些属性是无序的.每个属性都有一个字符串key和对应的value. var obj={x:1,y:2}; obj.x; obj.y; 1.为什么属性的key必须是 ...

  3. CTAP: Complementary Temporal Action Proposal Generation (ECCV2018)

    互补时域动作提名生成 这里的互补是指actionness score grouping 和 sliding window ranking这两种方法提proposal的结合,这两种方法各有利弊,形成互补 ...

  4. SQL Server生成数据库的数据字典存储过程

    use fpErp  --指定要生成数据字典的数据库 go SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case whe ...

  5. Tomcat中文乱码解决办法

    有时候发现自己将中文编码后还是会存在乱码的情况,解决办法就是在Server.xml中的Connector结点,配置 URIEncoding="UTF-8"即可

  6. LBS基站定位

    LBS基站定位(Location Based Service,简称LBS)一般应用于手机用户,它是基于位置的服务,通过电信.移动运营商的无线电通讯网络(如GSM网.CDMA网)或外部定位方式(如GPS ...

  7. window.location.replace和window.location.href区别

    有3个页面 a,b,c 如果当前页面是c页面,并且c页面是这样跳转过来的:a->b->c 1:b->c 是通过window.location.replace("..xx/c ...

  8. mybatis提示Invalid bound statement (not found)错误的可能原因

    https://www.cnblogs.com/liaojie970/p/8034525.html

  9. Bi-shoe and Phi-shoe (欧拉函数)

    题目描述: 题目大意:一个竹竿长度为p,它的score值就是比p长度小且与且与p互质的数字总数,比如9有1,2,4,5,7,8这六个数那它的score就是6.给你T组数据,每组n个学生,每个学生都有一 ...

  10. TF:Tensorflow定义变量+常量,实现输出计数功能—Jason niu

    #TF:Tensorflow定义变量+常量,实现输出计数功能 import tensorflow as tf state = tf.Variable(0, name='Parameter_name_c ...