自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇帶給你Pixi.js 入門 (一):繪制圖形

開發(fā) 前端
pixi.js 是一個快速、靈活的 2D WebGL 渲染引擎。該庫基于 Canvas 封裝,默認優(yōu)先使用 WebGL 進行二維圖形繪制,充分利用 GPU 硬件加速能力。如果不支持,會回退到 2D 模式,因為 2D 模式是上層的抽象,所以性能會差一些。

簡單入門 pixi.js。

pixi.js 是一個快速、靈活的 2D WebGL 渲染引擎。

該庫基于 Canvas 封裝,默認優(yōu)先使用 WebGL 進行二維圖形繪制,充分利用 GPU 硬件加速能力。如果不支持,會回退到 2D 模式,因為 2D 模式是上層的抽象,所以性能會差一些。

開始

首先創(chuàng)建一個 Application 實例。

我們使用 PIXI.Application 類創(chuàng)建一個新 PixiJS 應用。

import * as PIXI from "pixi.js";

const app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);

// 繪制內容
// ...

該類可以傳入配置對象,比如畫布寬高(width / height)、背景色(backgroudColor,默認為黑色)、掛載的 canvas 元素(view,不提供 PixiJS 會創(chuàng)建一個)等。

app.view 可以得到 PixiJS 應用掛載的 Canvas 元素。

繪制圖形

繪制圖形需要先創(chuàng)建 Graphics 實例,然后調用其下的方法。

一個 Graphics 代表一個圖形,當然也可以在單個 Graphics 繪制多個圖形。

繪制紅色矩形:

const rect = new PIXI.Graphics();

rect.beginFill(0xff0044); // 填充色
rect.lineStyle({ width: 2, color: 0x0000ff }); // 描邊
rect.drawRect(10, 10, 100, 50);
rect.endFill();

app.stage.addChild(rect);

app.stage 是圖形渲染的根節(jié)點,我們創(chuàng)建的 graphics 需要添加到 stage 下,這樣才會被渲染出來。

繪制圓形:

const circle = new PIXI.Graphics();

circle.beginFill(0x00ff00);
circle.drawCircle(200, 10, 50);
circle.endFill();

app.stage.addChild(circle);

繪制精靈:

const bunny = PIXI.Sprite.from('examples/assets/bunny.png');

bunny.anchor.set(0.5); // 設置精靈圖中心點

bunny.x = app.screen.width / 2; // 將精靈圖繪制在畫布正中央
bunny.y = app.screen.height / 2;

app.stage.addChild(bunny);

繪制曲線不支持 SVG 的那種方便的 指令字符串 寫法:

// 不支持
const trackPath = new Path2D("M10 10 h 80 v 80 h -80 Z");

只能用類似原生 Canvas 寫法那樣,一步步繪制了。個人覺得很繁瑣,指令字符串言簡意賅多好的抽象。

const path = new PIXI.Graphics();
path.lineStyle({ width: 1, color: 0x0000ff });
path.moveTo(10, 10);
path.lineTo(20, 100);
path.bezierCurveTo(40, 120, 60, 120, 80, 100)
app.stage.addChild(path);

容器 Container

使用容器,可以將多個圖形進行組合,然后在其上添加位移、旋轉等屬性,其下的圖形會得到這些效果。

Container 不繪制圖形,它組合圖形,類似 SVG 的 group 元素。

const container = new PIXI.Container();
container.x = 80;
container.y = 80;
container.addChild(rect, circle);
app.stage.addChild(container);

結尾

一些基本的用法。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2021-07-21 09:48:20

etcd-wal模塊解析數(shù)據(jù)庫

2021-01-28 08:55:48

Elasticsear數(shù)據(jù)庫數(shù)據(jù)存儲

2020-12-24 08:07:18

SpringBootSpring SecuWeb

2022-07-06 07:57:37

Zookeeper分布式服務框架

2021-06-28 10:04:12

SpringCloudSleuth微服務

2021-07-12 06:11:14

SkyWalking 儀表板UI篇

2022-03-31 08:09:04

CSS繪制技巧時鐘

2021-06-07 12:06:19

SpringCloud Sleuth微服務

2021-10-14 09:58:24

消息中間件ActiveMQ Java

2021-04-08 11:00:56

CountDownLaJava進階開發(fā)

2021-06-21 14:36:46

Vite 前端工程化工具

2024-06-13 08:34:48

2021-04-01 10:51:55

MySQL鎖機制數(shù)據(jù)庫

2021-04-14 14:16:58

HttpHttp協(xié)議網(wǎng)絡協(xié)議

2022-03-22 09:09:17

HookReact前端

2022-04-29 14:38:49

class文件結構分析

2023-03-29 07:45:58

VS編輯區(qū)編程工具

2021-03-12 09:21:31

MySQL數(shù)據(jù)庫邏輯架構

2022-02-17 08:53:38

ElasticSea集群部署

2021-08-18 10:28:09

MySQL SQL 語句數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號