Pixi绘制各种图形

简介: 这篇文章作为Pixi.js入门教程的一部分,详细介绍了如何使用Pixi.js绘制各种基本图形,如矩形、圆角矩形、圆形和椭圆,并提供了具体的实现代码。

最近为了制作调度系统的地图绘制,不得已学了pixi制作2D的地图,之前用threejs,发现在动态绘制线的时候效果很不好,而且很耗费性能,2D确实有着3D不可替代的地方。第一节,通过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);

Pixi绘制各种图形_圆角

如此这般,便在画布中有了一个黄色的长方形,同时还可以将长方形设置为圆角,显得圆润一些:只需要将代码中的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);

Pixi绘制各种图形_圆角_02

当然这是通过骚操作的方式实现的,正儿八经的绘制方法如下,绘制好的效果和上图一模一样,唯一的区别就是长方形的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);

Pixi绘制各种图形_圆角_03

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

相关文章
|
前端开发 定位技术
Pixi绘制地图和小车
这篇文章讲解了如何使用Pixi.js来绘制地图并在地图上显示小车,包括地图网格的创建和小车图像的定位与移动。
532 1
Pixi绘制地图和小车
|
前端开发 图形学
Pixi绘制带箭头的线
这篇文章讲解了如何使用Pixi.js来绘制带有箭头的线条,并提供了绘制箭头的具体实现方法和技术细节。
355 4
Pixi绘制带箭头的线
|
编解码 缓存 开发框架
PIXIJS快速一览
PIXIJS快速一览 前言 还记得我们最开始选择计算机专业的时候,是多少人抱着做一个游戏的初心选择这个专业的。结果一进去就跟随大众方向做了软件开发,然后就没然后了。 所以,最近稍微空闲下来了,就想着自己做一个小游戏出来玩玩或者说练练手。自己作为前端开发,所以就没必要单独学习Unity或者说虚幻引擎这类的工具了。就直接找个webGL相关的游戏引擎来用用吧
637 0
|
机器学习/深度学习 存储 自然语言处理
【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取
什么是基于深度学习的文本信息抽取? **信息抽取 (Information Extraction)** 是把原始数据中包含的信息进行结构化处理,变成表格一样的组织形式。输入信息抽取系统的是原始数据,输出的是固定格式的信息点,即从原始数据当中抽取有用的信息。信息抽取的主要任务是将各种各样的信息点从原始数据中抽取出来。然后以统一的形式集成在一起,方便后序的检索和比较。由于能从自然语言中抽取出信息框架和用户感兴趣的事实信息,无论是在信息检索、问答系统还是在情感分析、文本挖掘中,信息抽取都有广泛应用。随着深度学习在自然语言处理领域的很多方向取得了巨大成功......
【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取
|
人工智能 编解码
CogVideoX-Flash:智谱首个免费AI视频生成模型,支持文生视频、图生视频,分辨率最高可达4K
CogVideoX-Flash 是智谱推出的首个免费AI视频生成模型,支持文生视频、图生视频,最高支持4K分辨率,广泛应用于内容创作、教育、广告等领域。
1556 5
CogVideoX-Flash:智谱首个免费AI视频生成模型,支持文生视频、图生视频,分辨率最高可达4K
|
存储 文件存储 Windows
小白尖叫!DeepSeek安装竟偷占C盘?这样做路径配置 直接根治存储焦虑
惊! 完蛋了! DeepSeek占满了我的C盘~~~~ DeepSeek让我C盘爆炸~~~再见了,DeepSeek
1134 3
小白尖叫!DeepSeek安装竟偷占C盘?这样做路径配置 直接根治存储焦虑
|
Web App开发 JSON 网络协议
Fiddler移动端抓包
本篇文章,博主想使用通俗易懂的话语,让大家明白以下内容: 1. 什么是抓包 2. 哪些场景需要用到抓包 3. Fiddler抓包的原理 4. 怎样使用Fiddler进行移动端抓包
Fiddler移动端抓包
|
存储 JavaScript
这一定是最有用的vite插件入门教程了!
【8月更文挑战第3天】 vite插件核心在于几个钩子函数的理解与使用,想开发vite插件,掌握这几个插件即可。本文中探讨了**config钩子**和**transformIndexHtml钩子**,相信大家看完对插件开发一定有了最基本的认识与方向!
1041 3
|
机器学习/深度学习 人工智能 缓存
BlockDance:扩散模型加速革命!复旦字节联手实现50%无损提速
BlockDance 是复旦大学与字节跳动联合推出的扩散模型加速方法,通过识别重用相邻时间步中的结构相似特征,减少冗余计算,最高可加速50%,同时保持生成质量。
485 27
BlockDance:扩散模型加速革命!复旦字节联手实现50%无损提速
|
JavaScript
Vue3抽屉(Drawer)
这是一个基于Vue的抽屉组件(Drawer),提供了丰富的自定义选项,如宽度、高度、标题、关闭按钮等,并支持顶部、右侧、底部和左侧四种方向。
914 0
Vue3抽屉(Drawer)