Pixi入门第三章:绘制更多内容

简介: 这篇文章作为Pixi.js入门教程的第三章,介绍了如何使用鼠标事件(如mousemove)来实现在画布上绘制线条的功能,并提供了实现动态绘制的代码示例。

上一个章节绘制了长方形,原型,椭圆形,这节说下绘制线,绘制线和绘制图形的方式差不多,依然是是Graohics对象来绘制,先设置线条的样式,再绘制从某个点到某个点,绘制结束后将这条线加入到stage舞台上。

// 创建图形类
const graphics = new PIXI.Graphics()
//设置线的样式,第一个参数是线宽,第二个参数是颜色
graphics.lineStyle(5, 0xAAAAAA);
//线从第一个点,100,100的坐标点开始绘制
graphics.moveTo(100, 100);
//绘制到300,250的坐标点结束
graphics.lineTo(300, 250);
//将绘制的线加入到舞台stage上
app.stage.addChild(graphics);

效果图如下:

一旦可以绘制线了,其实绘制任何性状都可以了,因为图形就是多个线连起来得到的,比如,我们绘制一个三角形。

// 创建图形类
const graphics = new PIXI.Graphics()
//设置线的样式,第一个参数是线宽,第二个参数是颜色
graphics.lineStyle(5, 0xAAAAAA);
//线从第一个点,100,100的坐标点开始绘制
graphics.moveTo(100, 100);
//绘制到300,250的坐标点结束
graphics.lineTo(300, 250);
//绘制到220,250的坐标点结束
graphics.lineTo(220, 250);
//再绘制回到100, 100的坐标点结束
graphics.lineTo(100, 100);
//将绘制的线加入到舞台stage上
app.stage.addChild(graphics);

效果如下:

不过这又属于骚操作了,因为绘制图形的时候需要自己去计算每个点的坐标才能实现,同时要写很多行的line.to ,所以正常情况还是用提供的绘制图形方法更快一些。比如用标准的方式绘制一个多边形,可以看到同样是绘制一个三角形,但是代码行数变少了,而且还可以添加填充色,设置边框颜色等。

 // 创建图形类
const graphics = new PIXI.Graphics()
//设置多边形的填充色
graphics.beginFill(0xff0044);
//设置多边形的边框线样式
graphics.lineStyle(5, 0xffffff);
// 多边形的每个点放到同一个集合中,两两为一组
graphics.drawPolygon(100, 100, 300, 250, 350, 50);
// 添加到舞台上,也就是stage上
app.stage.addChild(graphics);

最后,再来尝试绘制一个贝塞尔曲线,贝塞尔曲线分为二阶和三阶,二阶的贝塞尔曲线有一个点来影响线的曲率,三阶贝塞尔曲线有两个点来影响线的曲率。下面先尝试下二阶的:

        // 创建图形类
        const graphics = new PIXI.Graphics()
        //设置填充颜色
        graphics.beginFill(0xff0044);
        //设置绘制的线条样式
        graphics.lineStyle(5, 0xffffff);
        //设置绘制的开始点,如果不设置会默认从0,0开始绘制
        graphics.moveTo(100, 180)
        //二阶贝塞尔曲线的中间点和目标点,前两个参数为中间点的x和y,后面两个参数为目标点的x和y
        graphics.quadraticCurveTo(90, 100, 210, 100 )
        // 添加到 stage 下
        app.stage.addChild(graphics);

效果图:

再来个三阶的,

        // 创建图形类
        const graphics = new PIXI.Graphics()
        //设置填充颜色
        graphics.beginFill(0xff0044);
        //设置绘制的线条样式
        graphics.lineStyle(5, 0xffffff);
        //设置绘制的开始点,如果不设置会默认从0,0开始绘制
        graphics.moveTo(100, 180)
        //三阶贝塞尔曲线的两个中间点和目标点,前四个参数为中间点的x和y,后面两个参数为目标点的x和y
        graphics.bezierCurveTo(90, 100, 210, 100, 300, 180)
        // 添加到 stage 下
        app.stage.addChild(graphics);

效果图

至此,基本的用Graphics绘制图形,绘制线的操作都全了,下面一章开始做更好玩一点的东西

相关文章
|
前端开发 JavaScript
手把手教你用Javascript制作随机星星效果图
手把手教你用Javascript制作随机星星效果图
338 0
手把手教你用Javascript制作随机星星效果图
|
2月前
|
Web App开发 数据可视化 前端开发
Pixi入门第一章:绘制一个小精灵
这篇文章是关于Pixi.js的入门教程第一部分,指导读者如何创建并显示一个基本的2D精灵,适用于开始学习Pixi.js进行2D图形开发的初学者。
80 0
Pixi入门第一章:绘制一个小精灵
|
2月前
Pixi入门第二章:绘制各种图形
这篇文章是Pixi.js入门系列的第二章,重点在于如何使用Pixi.js绘制各种基本图形,如矩形、圆角矩形、圆形和椭圆,并提供了具体的代码示例。
71 0
Pixi入门第二章:绘制各种图形
|
2月前
|
移动开发 JavaScript 前端开发
ThreeJs简介
这篇文章介绍了Three.js的基础知识,包括其相对于WebGL的优势以及如何使用Three.js创建基本的3D场景。
53 1
|
4月前
|
编解码 JavaScript 前端开发
ThreeJs 基础学习
ThreeJs 基础学习
58 0
|
6月前
|
JavaScript
three.js入门第一个案例
three.js入门第一个案例
|
7月前
|
JavaScript 开发工具 git
Three.js第1篇,Three.js新手教学,如何在项目中使用Three.js(three.js使用流程详细,three.js的使用方式,three.js创建3d物体)
Three.js封装了WebGL的底层细节,是一款运行在浏览器中的 3D 引擎,可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象,目前在Git上已经拥有90k+的star。
177 0
Three.js第1篇,Three.js新手教学,如何在项目中使用Three.js(three.js使用流程详细,three.js的使用方式,three.js创建3d物体)
Threejs入门进阶实战案例(4):addEventListener() 方法自适应窗口显示的方案
Threejs入门进阶实战案例(4):addEventListener() 方法自适应窗口显示的方案
133 0
|
Web App开发 前端开发 数据可视化
【重学CSS】图文并茂!一次性搞懂 Grid 布局,实现“布局自由”~(上)
【重学CSS】图文并茂!一次性搞懂 Grid 布局,实现“布局自由”~(上)
|
算法 前端开发 开发者
【重学CSS】图文并茂!一次性搞懂 Grid 布局,实现“布局自由”~(中)
【重学CSS】图文并茂!一次性搞懂 Grid 布局,实现“布局自由”~(中)
下一篇
DataWorks