国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

深入解析HTML5 Canvas控制圖形矩陣變換的方法

2024-09-05 07:21:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在介紹矩陣變換transform()前,我們來(lái)說(shuō)一說(shuō)什么是變換矩陣。
2016324103749515.png (344×277)

以上是Canvas中transform()方法所對(duì)應(yīng)的變換矩陣。而此方法正是傳入圖中所示的六個(gè)參數(shù),具體為context.transform(a,b,c,d,e,f)。

各參數(shù)意義對(duì)應(yīng)如下表:

參數(shù) 意義
a 水平縮放(1)
b 水平傾斜(0)
c 垂直傾斜(0)
d 垂直縮放(1)
e 水平位移(0)
f 垂直位移(0)

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

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

transform()方法

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

默認(rèn)坐標(biāo)系是以畫布最左上角為坐標(biāo)原點(diǎn)(0,0)。越往右X軸數(shù)值越大,越往下Y軸的數(shù)值越大。在默認(rèn)坐標(biāo)系中,每一個(gè)點(diǎn)的坐標(biāo)都是直接映射到一個(gè)CSS像素上。畫布上一些特定的操作和屬性的設(shè)置都使用默認(rèn)坐標(biāo)系。然而除了默認(rèn)坐標(biāo)系之外,每個(gè)畫布還有一個(gè)還有一個(gè)“當(dāng)前變換距陣”,作為圖形狀態(tài)的一部分。該矩陣定義了畫布的當(dāng)前坐標(biāo)系。當(dāng)指定了一個(gè)點(diǎn)的坐標(biāo)后,畫布的大部分操作都將該點(diǎn)映射到當(dāng)前的坐標(biāo)系中,而不是默認(rèn)的坐標(biāo)系。當(dāng)前變換矩陣是用來(lái)指定的坐標(biāo)轉(zhuǎn)換成為默認(rèn)坐標(biāo)系中的等價(jià)坐標(biāo)。坐標(biāo)的變換還影響了文本和線段的繪制。
 
調(diào)用translate()方法只是簡(jiǎn)單地將坐標(biāo)原點(diǎn)進(jìn)行上、下、左、右移動(dòng)。
rotate()方法會(huì)將坐標(biāo)軸根據(jù)指定角度里進(jìn)行順時(shí)針旋轉(zhuǎn)。
scale()方法實(shí)現(xiàn)對(duì)x軸或由y軸上的距離進(jìn)行延長(zhǎng)和縮短。傳遞負(fù)值會(huì)實(shí)現(xiàn)
 
scale以坐標(biāo)原點(diǎn)做參照點(diǎn)將坐標(biāo)軸進(jìn)行翻轉(zhuǎn)。就好像鏡子中的鏡像。
translate用來(lái)將坐標(biāo)原點(diǎn)移動(dòng)到畫布最左下角,然后scale方法用于實(shí)現(xiàn)將y軸進(jìn)行翻轉(zhuǎn),這樣的就變成了越往上y軸越大。

從數(shù)學(xué)角度來(lái)理解坐標(biāo)系變換:
translate、rotate和scale方法想象成對(duì)坐標(biāo)軸的變換,就很容易理解了。從代數(shù)角度很容易理解坐標(biāo)變換,就是把變換想像成一個(gè)變換后坐標(biāo)系中的點(diǎn)(x,y),到原來(lái)的坐標(biāo)系統(tǒng)變成了(x`,y`)。
調(diào)用 c.translate(dx,dy)。的方法等效如下表達(dá)式


復(fù)制代碼
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴业县| 资源县| 剑川县| 安远县| 朝阳县| 赞皇县| 黄浦区| 衡阳县| 原平市| 垣曲县| 湘乡市| 建瓯市| 尼玛县| 南漳县| 叙永县| 石首市| 海阳市| 甘洛县| 淮阳县| 齐齐哈尔市| 靖安县| 溧阳市| 盐城市| 德保县| 通河县| 慈溪市| 寻乌县| 三明市| 册亨县| 平罗县| 沂水县| 班玛县| 肇东市| 海盐县| 司法| 元阳县| 长岭县| 岢岚县| 哈尔滨市| 威海市| 璧山县|