中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

南京網(wǎng)站網(wǎng)站建設(shè)學(xué)校如何發(fā)布一個網(wǎng)站

南京網(wǎng)站網(wǎng)站建設(shè)學(xué)校,如何發(fā)布一個網(wǎng)站,自學(xué)網(wǎng)頁設(shè)計要多久,公司網(wǎng)站建設(shè)制作價格大家好,我是前端西瓜哥。 我們做動畫、游戲、編輯器,需要根據(jù)用戶的交互等操作,去實時地改變圖形的屬性,比如位置,顏色等信息。今天西瓜哥帶大家來看看在 pixijs 怎么修改圖形的屬性。 因為 pixijs 的底層維護了圖形…

大家好,我是前端西瓜哥。

我們做動畫、游戲、編輯器,需要根據(jù)用戶的交互等操作,去實時地改變圖形的屬性,比如位置,顏色等信息。今天西瓜哥帶大家來看看在 pixijs 怎么修改圖形的屬性。

因為 pixijs 的底層維護了圖形樹,所以我們可以直接修改圖形的屬性,讓 pixijs 重新計算并渲染出新的畫面。

首先我們先繪制一個矩形:

import * as PIXI from 'pixi.js'const app = new PIXI.Application({ width: 640, height: 360 });
document.body.appendChild(app.view);const rect = new PIXI.Graphics();
rect.beginFill(0xFF0044); // 設(shè)置填充色
rect.lineStyle(5, 0xFFFFFF); // 設(shè)置描邊線寬和顏色
rect.drawRect(100, 100, 200, 100); // 參數(shù)分別為 x, y, width, height
// 添加到 stage 下
app.stage.addChild(rect);

可以看到,畫布繪制出了一個矩形。

需要注意的是,graphics 對象其實是一個容器,雖然只裝了一個矩形,但你可以在它下面繪制更多的內(nèi)容,比如圓形、線條等等。

所以 graphics 的位置默認(rèn)是 (0, 0),而不是上面繪制矩形時設(shè)置的 (100, 100)。

圖形位移

rect.x = x;
rect.y = y;

順帶一提,上面的 x 和 y 其實用了 getter 和 setter 代理了 rect.position 對象。該對象屬于 PIXI.ObservablePoint 類,有不少好用的方法,比如判斷和另一個點是否相等、求和另一個點的點積等。

所以還可以這樣寫:

rect.position.set(x, y);

我寫了個 demo,給 app.view 加了個點擊事件,點擊后修改 x 和 y,效果如下:

在這里插入圖片描述

圖形旋轉(zhuǎn)

rect.rotation = radian; // 設(shè)置弧度

rotation 使用的值是弧度,學(xué)術(shù)上和很多 API 都是用弧度的,計算上更方便。

當(dāng)然也可以用角度 angle,但底層也是做了代理:轉(zhuǎn)換成弧度值,然后賦值給 rotation 屬性。

rect.angle = angle; // 設(shè)置角度

然后很重要一點的是旋轉(zhuǎn)中心的設(shè)置。旋轉(zhuǎn)中心默認(rèn)是 (0, 0)??梢酝ㄟ^ pivot 屬性來設(shè)置。

rect.pivot.set(cx, cy);

pivot 這個屬性比較抽象,它會影響 position 的效果,從表現(xiàn)上,它會將容器下的圖形往 (-cx, -cy) 方向移動,所以你還需要通過 rect.position.set(cx, cy) 將容器移動回原來的位置。

另一種做法是,在繪制矩形的時候,將將其中心點對上 (0, 0),就不用設(shè)置 pivot 了。

在這里插入圖片描述

圖形縮放

用法類似圖形旋轉(zhuǎn)。

rect.scale.set(sx, sy);

圖形斜切

rect.skew.set(skewX, skewY);

圖形內(nèi)容更新

前面這些都是物理位置和變形相關(guān)的,只需要在原來繪制出來的像素上做一些線性運算的到新的位置就可以了。

但如果你要做改變圖形的填充色、線寬等操作時,就不能簡單地設(shè)置一些屬性就可以了,而是需要先用 clear 方法清空內(nèi)容,然后重新定義形狀。

rect.clear();
// 然后像第一次繪制一樣,繪制一個矩形出來
// 將其中一些變量設(shè)置為新的值就可以了
// ...

下面是修改矩形線寬的例子。其他繪制參數(shù)比如填充色照舊,但線寬設(shè)置了新值。

const rect = new PIXI.Graphics();
rect.beginFill(0xFF0044);
rect.lineStyle(5, 0xFFFFFF); // 設(shè)置描邊線寬和顏色
rect.drawRect(100, 100, 200, 100);app.view.onclick = () => {// rect.skew.set(1.3, 1)// rect.width = 100;rect.clear();rect.beginFill(0xFF0044);rect.lineStyle({ width: 10, color: 0xFFFFFF });rect.drawRect(100, 100, 200, 100); 
}

效果:

在這里插入圖片描述

結(jié)尾

只是改變 graphics 的物理信息,或者說是變形(transform),只需要直接修改 position、rotation 屬性即可。但如果是內(nèi)容的改變,就要用 clear 清空內(nèi)容,然后重新繪制了。

我是前端西瓜哥,歡迎關(guān)注我,學(xué)習(xí)更多前端知識。

http://m.risenshineclean.com/news/60255.html

相關(guān)文章:

  • 做金融必看網(wǎng)站谷歌在線瀏覽器免費入口
  • 網(wǎng)站建設(shè)欄目說明百度一下就知道官網(wǎng)
  • 企業(yè)網(wǎng)站建設(shè)的思路最優(yōu)化方法
  • 一些做的好的網(wǎng)站東營百度推廣電話
  • 曲阜公司網(wǎng)站建設(shè)價格便宜ui設(shè)計培訓(xùn)班哪家好
  • 淘寶客網(wǎng)站還可以做嗎牛奶軟文廣告營銷
  • 長沙今天最新招聘信息臺州關(guān)鍵詞優(yōu)化平臺
  • 阿里巴巴做網(wǎng)站的電話號碼西安百度推廣怎么做
  • 金融投資網(wǎng)站開發(fā)站長工具是干嘛的
  • 產(chǎn)品經(jīng)理培訓(xùn)哪個機構(gòu)好湖南正規(guī)seo優(yōu)化
  • 做網(wǎng)站的人還能做什么公司網(wǎng)站建設(shè)要多少錢
  • 做網(wǎng)站怎樣連數(shù)據(jù)庫關(guān)鍵詞推廣效果分析
  • 做視頻網(wǎng)站視頻放在哪里域名怎么注冊
  • 如何做電影網(wǎng)站賺錢嗎刷百度指數(shù)
  • 營銷型網(wǎng)站建設(shè)公司云服務(wù)器
  • 網(wǎng)站建設(shè)捌金手指下拉一南寧推廣軟件
  • 瓊海網(wǎng)站建設(shè)太原seo報價
  • 目前最火的自媒體平臺seo網(wǎng)站關(guān)鍵詞排名優(yōu)化公司
  • 做韓國網(wǎng)站有哪些東西嗎手機網(wǎng)站排名優(yōu)化軟件
  • 響應(yīng)式網(wǎng)站底部菜單欄廣州競價托管公司
  • 廣州網(wǎng)站建站房管局備案查詢網(wǎng)站
  • 用.net core 做網(wǎng)站公司企業(yè)網(wǎng)站建設(shè)
  • 新手學(xué)做網(wǎng)站的教學(xué)書百度怎么搜索圖片
  • 做導(dǎo)航網(wǎng)站賺錢嗎搜索推廣公司
  • 滿屏網(wǎng)站做多大尺寸網(wǎng)絡(luò)平臺建設(shè)及運營方案
  • 山西做網(wǎng)站的企業(yè)站長工具官網(wǎng)域名查詢
  • 公司網(wǎng)站做地圖地址互聯(lián)網(wǎng)推廣怎么找渠道
  • 商城網(wǎng)站建設(shè)預(yù)算要多少錢關(guān)鍵詞推廣方式
  • 網(wǎng)站標(biāo)簽怎么做自媒體引流推廣
  • 花瓣網(wǎng) 素材 圖庫響應(yīng)式網(wǎng)站 樂云seo品牌