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) ...
随机推荐
- 微信公众号之:JSSDK接入以及invalid signature等常见错误问题
最近在搞微信公众号开发,进行到网页开发部分被坑了一天,最坑的问题就是invalid signature,而网上大部分解答这个问题的都没有说清楚,都直接丢文档.博主认为这样很不好.本文是博主结合自身遇到 ...
- Kubeadm安装的K8S集群1年证书过期问题的解决思路
这个问题,很多使用使用kubeadm的用户都会遇到. 网上也有类似的帖子,从源代码编译这种思路, 在生产环境,有些不现实. 还是使用kubeadm的命令操作,比较自然一点. 当然,自行生成一套证书,也 ...
- innobackupex做MySQL增量备份及恢复
http://www.cnblogs.com/paul8339/p/6731688.html
- poj2398
题解: 计算几何入门题 对每个二分最近的在它右边的杆子 如何判断一个杆子在它右边呢 计算机判断这些要更善于利用点积和叉积 如果叉积为正代表在顺时针方向叉积为负在逆时针 发现要在struct里面重载运算 ...
- 用groovy脚本进行每日工作的自动化【groovy】
我们可以用groovy编写日常的批处理脚本,类似windows下的bat或者unix下的shell.其具体的编写方式非常简单,比如我们想要执行一个dir的命令,只要编写一个test.groovy,其中 ...
- Docker数据卷和Docker系统管理(一)
一. 创建和挂载数据卷 1. 创建数据卷 (1)执行下列命令,创建一个名为my-data的数据卷 [root@c720120 ~]# docker volume create my-data my-d ...
- sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表
USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9 ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十三集之Redis的单机版搭建】
(转载其他博客的安装步骤,截图是自己的) 1, 第一步:安装gcc编译环境 yum install gcc-c++ 第二步:把redis的源码上传到linux服务器. 第三步:解压缩. tar -zx ...
- HashMap实现原理简析及实现的demo(一看就明白)
HashMap底层就是一个数组结构,数组中的每一项又是一个链表. jdk源码: transient Node<K,V>[] table; static class Node<K,V& ...
- JAVA程序的基本结构
java程序(类)其实是一个静态方法库,或者是定义了一个数据类型.所以会遵循7种语法: 1.原始数据类型: ---整型:byte.short.int.long ---浮 ...