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) ...
随机推荐
- 点击图片弹出input type=file选择器
<label for="UploadCoverPhoto" class="cursor-pointer"> <img class=" ...
- javascript 相关小的知识点集合
本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false ...
- PHP查询数据库较慢,nginx 超时 返回 504:Sorry, the page you are looking for is currently unavailable.
现象: PHP查询数据库较慢,大约 60s 后 nginx 返回 504:Sorry, the page you are looking for is currently unavailable. 检 ...
- flink的流处理特性
flink的流处理特性: 支持高吞吐.低延迟.高性能的流处理 支持带有事件时间的窗口(Window)操作 支持有状态计算的Exactly-once语义 支持高度灵活的窗口(Window)操作,支持基于 ...
- 企业级代码托管Gitlab
Gitlab概述: 一个利用Ruby on Rails开发的开元应用程序,从而实现一个代码托管项目仓库,可以通过web界面进行访问公开的或者私有的项目 Ruby on Rails是一个可以使开发,部署 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- tomcat配置介绍
第一节java的介绍 java需要一个java的运行环境 JDK:包含了好几个java组件,包含类库(API) 开发工具(java) jvm(java虚拟机)JRE(类库) tomcat:开源 企业 ...
- JavaScript onmousewheel鼠标滚轮示例
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- appium---第四个脚本,进入app,有权限弹窗的方法
1.以淘宝为例:进入首页,会弹出好几个权限弹窗 无法使用id定位 用xpath定位
- BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA
原文链接http://www.cnblogs.com/zhouzhendong/p/9016336.html 题目传送门 - BZOJ4319 题意 给出一个$1,2,\cdots,n$的排列,第$i ...