麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > HTML5 > 正文

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

2024-09-05 07:21:31
字體:
來源:轉載
供稿:網友

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

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

各參數意義對應如下表:

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

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

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

transform()方法

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

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

從數學角度來理解坐標系變換:
translate、rotate和scale方法想象成對坐標軸的變換,就很容易理解了。從代數角度很容易理解坐標變換,就是把變換想像成一個變換后坐標系中的點(x,y),到原來的坐標系統變成了(x`,y`)。
調用 c.translate(dx,dy)。的方法等效如下表達式


復制代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av免费在线观看免费 | 性高湖久久久久久久久aaaaa | 国产1区2 | 长泽雅美av | 成人短视频在线观看 | 久久视频精品 | 五月天影院,久久综合, | h网站在线观看 | 日韩欧美电影一区二区三区 | 国产中文一区 | 国产在线精品一区二区三区 | 中国产一级毛片 | 一区二区三区在线观看免费视频 | 特级黄aaaaaaaaa毛片 | 精品一区二区三区在线观看视频 | 欧美a级在线免费观看 | 国产成人精品免高潮在线观看 | 99爱视频在线观看 | 91精品国产91久久久久久丝袜 | 国产成人在线免费看 | 性爱免费在线视频 | 91色综合综合热五月激情 | 国产免费乱淫av | 午夜视频免费播放 | 成人免费看视频 | 牛牛视频在线 | 久久久一区二区三区视频 | 视频久久免费 | 91成人免费在线观看 | 广州毛片| 亚洲精品 在线播放 | 激情小说区 | 男人的天堂视频网站 | 污片视频在线观看 | av视屏| 久久成人综合视频 | 狠狠操电影 | 成人福利在线看 | 手机国产乱子伦精品视频 | xxxxxx视频 | 亚洲生活片 |