Pixi入门第二章:绘制各种图形

简介: 这篇文章是Pixi.js入门系列的第二章,重点在于如何使用Pixi.js绘制各种基本图形,如矩形、圆角矩形、圆形和椭圆,并提供了具体的代码示例。

上一个章节已经大概介绍了Pixi,并做了一个简单的例子,这节正式入门,因为pixi是用来绘制图形的,那么这节就从头开始说用pixi绘制一个简单的图形,先从最简单的长方形开始,

//新建一个PIXI的Graphics绘图对象
const graphics = new PIXI.Graphics()
// 开始绘图设置填充颜色,两个参数分别为(颜色, 不透明度)
graphics.beginFill(0xffd900, 1)
// 创建图形,四个参数分别是x,y,widht,height,也就是从x,y坐标开始绘制一个宽200,高100的长方形
graphics.drawRect(50, 50, 200, 100)
// 结束绘制操作
graphics.endFill()
//将绘制的图形添加到舞台stage中
app.stage.addChild(graphics);

如此这般,便在画布中有了一个黄色的长方形,同时还可以将长方形设置为圆角,显得圆润一些:只需要将代码中的graphics.drawRect(50, 50, 200, 100)替换为graphics.drawRoundedRect(50, 50, 200, 100,5);新替换的方法最后一个值就是圆角的半径,类似div中的radius值,和radius一样,你如果长方形改为正方形,并把圆角的半径设置为边的一半,你就会得到一个圆形

  // 创建图形类
const graphics = new PIXI.Graphics()
// 设置填充颜色 beginFill(颜色, 不透明度)
graphics.beginFill(0xffd900, 1)
//从,50,50的坐标绘制宽和高都为100的矩形,并设置圆角半径为50
graphics.drawRoundedRect(50, 50, 100, 100,50)
// 绘制操作
graphics.endFill()
app.stage.addChild(graphics);

当然这是通过骚操作的方式实现的,正儿八经的绘制方法如下,绘制好的效果和上图一模一样,唯一的区别就是长方形的x和y是开始绘制的点,圆的x和y是圆心,

// 创建图形类
const graphics = new PIXI.Graphics()
// 设置填充颜色 beginFill(颜色, 不透明度)
graphics.beginFill(0xffd900, 1)
//从,1001,00的坐标绘制半径为50的圆
graphics.drawCircle(100, 100, 50)
// 绘制操作
graphics.endFill()
app.stage.addChild(graphics);

但是这两种方式都只能绘制出圆或者圆角的方形,没办法绘制出椭圆,因为椭圆又是一个新的绘制方法:graphics.drawEllipse,下面在(100,100)的位置绘制一个宽100,高50的椭圆

// 创建图形类
const graphics = new PIXI.Graphics()
// 设置填充颜色 beginFill(颜色, 不透明度)
graphics.beginFill(0xffd900, 1)
//从,100,100的坐标绘制宽100高50的椭圆
graphics.drawEllipse(100, 100, 100, 50)
// 绘制操作
graphics.endFill()
app.stage.addChild(graphics);

常规图形就这些了,下一章再介绍其他花里花哨的图形绘制方法。

相关文章
|
JSON 前端开发 数据可视化
AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程
AMIS【部署 01】amis前端低代码框架可视化编辑器amis-editor本地部署流程
3075 0
|
JavaScript 数据可视化
Vue引入Echarts词云图实现数据可视化(实现源码+案例)
本文主要讲Vue如何引入Echarts词云图实现数据可视化
2396 0
Vue引入Echarts词云图实现数据可视化(实现源码+案例)
|
存储 网络协议 Linux
如何安装OpenStack?
【8月更文挑战第21天】
1972 1
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
622 3
|
网络协议 应用服务中间件 网络安全
小白必看:阿里云SSL证书免费申请流程,免费3个月到期解决方法
2024年阿里云提供免费SSL证书申请服务,品牌为Digicert,支持免费单域名证书,每个账号可申请20张,有效期3个月。用户需登录阿里云数字证书管理服务控制台,完成证书申请、域名绑定及DNS验证等步骤,操作简便快捷。更多详情见阿里云官网。
|
UED
ThreeJs模拟工厂生产过程三
这篇文章介绍了在Three.js中通过使用mergeGeometries技术来合并大量车间模型,以减少浏览器渲染负担,提高性能,并提供了实现模型合并的具体方法和步骤。
309 5
|
存储 开发框架 JavaScript
Threejs中三维物体和HTML的爱恨情仇:CSS2DRenderer
【8月更文挑战第7天】Threejs中三维物体和HTML的爱恨情仇:CSS2DRenderer
1704 4
Threejs中三维物体和HTML的爱恨情仇:CSS2DRenderer
|
Java 定位技术
Threejs路径规划案例V1
这篇文章详细介绍了使用Three.js进行三维路径规划的实现方法,包括设置三维场景、实现车辆避障以及展示规划路径等内容。
426 1
|
JavaScript
Uniapp实现时间选择器
Uniapp实现时间选择器
1331 0
|
Web App开发 前端开发 Android开发
svg图标无法修改颜色的解决方案
svg图标无法修改颜色的解决方案

热门文章

最新文章