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) ...
随机推荐
- python全栈开发day58-mysql存储过程,权限,索引,慢日志,执行计划,分页优化处理
1.存储过程 delimiter // create procedure insert_data(in rows int) begin DECLARE n INT DEFAULT 1; drop ta ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-1目录
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- mysql-索引-日志
索引:基于元数据之上的在某个字段或多个字段取出来,索引是加速读操作的,但对写操作时有副作用的 BTree 索引:抽取出来重新排序,是左前缀索引每一个叶子结点到根结点的距离相同: 哈希索引:基于键查找值 ...
- Codeforces 765F Souvenirs 线段树 + 主席树 (看题解)
Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, ...
- Vue2.0学习——axios用法详解
功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 自动转换 JSON 数据 客 ...
- BZOJ1208 [HNOI2004]宠物收养所 splay
原文链接http://www.cnblogs.com/zhouzhendong/p/8085803.html 题目传送门 - BZOJ1208 题意概括 有两种数,依次加入. 规则为下: 如果当前剩余 ...
- .net core webapi 将localhost改成ip地址
用管理员身份运行vs 添加引用 using Microsoft.AspNetCore.Cors; 修改 public void Configure(IApplicationBuilder app, I ...
- spring ,springmvc,mybatis 最基本的整合,没有多余的jar包和依赖 2018.9.29日
最基本的ssm框架整合 本案例采用2018商业版intellij idea 编辑器 maven项目管理工具 tomcat8.5 接着上一篇使用springmvc最基本配置开始 https: ...
- MATLAB视频读取转换为图片
转换mp4到jpg格式的图片: % convert .mp4 to jpg picture t='C:\Documents and Settings\luokh\桌面\Matlab编程\Matlab编 ...
- Java 之 Web前端(三)
1.JSP a.全称:Java Server Page b.运行:翻译.编译.类装载.类实例化.(初始化.服务.销毁 (这三点为Servlet的生命周期)) 2.JSP的基本组成 a.HTML模板 注 ...