真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用HTML5Canvas控制圖形矩陣變換

小編給大家分享一下怎么用HTML5 Canvas控制圖形矩陣變換,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

站在用戶的角度思考問題,與客戶深入溝通,找到永嘉網(wǎng)站設(shè)計與永嘉網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋永嘉地區(qū)。

當(dāng)我們把對應(yīng)的0或1代入進矩陣,可以發(fā)現(xiàn)這是一個單位矩陣(水平和垂直縮放默認值是1,代表縮放1倍,即不縮放)。該方法使用一個新的變化矩陣與當(dāng)前變換矩陣進行乘法運算,然后得到各種變化的效果。

這里簡單說一下,當(dāng)我們想對一個圖形進行變換的時候,只要對變換矩陣相應(yīng)的參數(shù)進行操作,操作之后,對圖形的各個定點的坐標(biāo)分別乘以這個矩陣,就能得到新的定點的坐標(biāo)。

transform()方法

而Canvas繪圖中,就給咱們提供了一個方法來改變這個變換矩陣,那就是transform()。

默認坐標(biāo)系是以畫布最左上角為坐標(biāo)原點(0,0)。越往右X軸數(shù)值越大,越往下Y軸的數(shù)值越大。在默認坐標(biāo)系中,每一個點的坐標(biāo)都是直接映射到一個CSS像素上。畫布上一些特定的操作和屬性的設(shè)置都使用默認坐標(biāo)系。然而除了默認坐標(biāo)系之外,每個畫布還有一個還有一個“當(dāng)前變換距陣”,作為圖形狀態(tài)的一部分。該矩陣定義了畫布的當(dāng)前坐標(biāo)系。當(dāng)指定了一個點的坐標(biāo)后,畫布的大部分操作都將該點映射到當(dāng)前的坐標(biāo)系中,而不是默認的坐標(biāo)系。當(dāng)前變換矩陣是用來指定的坐標(biāo)轉(zhuǎn)換成為默認坐標(biāo)系中的等價坐標(biāo)。坐標(biāo)的變換還影響了文本和線段的繪制。

調(diào)用translate()方法只是簡單地將坐標(biāo)原點進行上、下、左、右移動。

rotate()方法會將坐標(biāo)軸根據(jù)指定角度里進行順時針旋轉(zhuǎn)。

scale()方法實現(xiàn)對x軸或由y軸上的距離進行延長和縮短。傳遞負值會實現(xiàn)

scale以坐標(biāo)原點做參照點將坐標(biāo)軸進行翻轉(zhuǎn)。就好像鏡子中的鏡像。

translate用來將坐標(biāo)原點移動到畫布最左下角,然后scale方法用于實現(xiàn)將y軸進行翻轉(zhuǎn),這樣的就變成了越往上y軸越大。

從數(shù)學(xué)角度來理解坐標(biāo)系變換:

translate、rotate和scale方法想象成對坐標(biāo)軸的變換,就很容易理解了。從代數(shù)角度很容易理解坐標(biāo)變換,就是把變換想像成一個變換后坐標(biāo)系中的點(x,y),到原來的坐標(biāo)系統(tǒng)變成了(x`,y`)。

調(diào)用 c.translate(dx,dy)。的方法等效如下表達式

復(fù)制代碼

代碼如下:

x` = x+dx; //新系統(tǒng)中的x軸的0,在原系統(tǒng)中就是dx

y` = y+dy;

c.scale(sx,sy);

x` = sx*x;

y` = sy*y;

c.rotate()

x` =x*cos(a)-y*sin(a);

y` = y*cos(a)+x*sin(a);

建議使用transform()的時候,可以在如下幾個情況下使用:

1.使用context.transform (1,0,0,1,dx,dy)代替context.translate(dx,dy)

2.使用context.transform(sx,0,0,sy,0,0)代替context.scale(sx, sy)

3.使用context.transform(0,b,c,0,0,0)來實現(xiàn)傾斜效果(最實用)。

不用再使用它去實現(xiàn)旋轉(zhuǎn)了,另外也沒有也不用全記這些結(jié)論,直接記下abcdef六個參數(shù)的意義,效果是一樣的。

下面我們看一個代碼,熟悉一下:

JavaScript Code復(fù)制內(nèi)容到剪貼板

   

   

   

       

    矩陣變換   

       

   

   

   

       

        你的瀏覽器居然不支持Canvas?!趕快換一個吧!!   

       

   

   

   

  

運行結(jié)果:

setTransform()方法

transform()方法的行為相對于由 rotate(),scale(), translate(), or transform() 完成的其他變換。例如:如果我們已經(jīng)將繪圖設(shè)置為放到兩倍,則 transform() 方法會把繪圖放大兩倍,那么我們的繪圖最終將放大四倍。這一點和之前的變換是一樣的。

但是setTransform()不會相對于其他變換來發(fā)生行為。它的參數(shù)也是六個,context.setTransform(a,b,c,d,e,f),與transform()一樣。

這里我們通過一個例子來說明:

繪制一個矩形,通過 setTransform() 重置并創(chuàng)建新的變換矩陣,再次繪制矩形,重置并創(chuàng)建新的變換矩陣,然后再次繪制矩形。

JavaScript Code復(fù)制內(nèi)容到剪貼板

   

   

   

       

    矩陣變換   

       

   

   

   

       

        你的瀏覽器居然不支持Canvas?!趕快換一個吧?。?nbsp;  

       

   

   

   

    

以上是“怎么用HTML5 Canvas控制圖形矩陣變換”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:怎么用HTML5Canvas控制圖形矩陣變換
路徑分享:http://weahome.cn/article/ihogeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部