在html5中,可以實現多種的圖形變換包括平移,縮放和旋轉。可以透過兩種方式,分別是矩陣法和函數法,以下分別介紹平移,縮放和旋轉用這兩種方法實現。
1.平移:
context.fillRect(50,50,50,50); context.translate(100,100); context.fillRect(50,50,50,50);
如果沒有中間這句你看到的效果會是只有一個矩形,因為第一個矩形和第二個矩形重合了,現在的效果是進行了平移,效果如下:
#首先,本篇介紹的方法都是狀態值,也就是說他的作用域會影響它下面的所有程式碼,也可以使用save和restore來儲存和彈出狀態。上面介紹的是呼叫函數來解決平移的問題,以下介紹矩陣法,我們可以使用context的transform方法來進行矩陣變化操作,它有六個參數,有些解釋喜歡把它們解釋為負責不同的操作,我更願意從整體上介紹這六個參數,也就是說分別在平移,縮放和旋轉時這些參數負責的是不同的,首先介紹整體,從整體上前四個參數負責縮放和旋轉,後兩個參數是平移,前四個參數1,# 4為一組,2#,#3為一組,1和2是x值,#3##和4是y值,56分別為x,y的平移,上面的程式碼如果用矩陣就按下面的方法寫:
context.fillRect(50,50,50,50); context.transform(1,0,0,1,100,100); //context.transform(0,1,1,0,100,100); context.fillRect(50,50,50,50);在這裡第二句程式碼和第三句注掉的程式碼意義一樣,之所以要在
1,4這組和# #2
,3這組中的一組裡寫#1,是因為我們要保證矩形不被縮放,如果是
0的話則大小被縮放為0
。
2.縮放
context.fillRect(50,50,50,50); context.translate(150,50); context.scale(0.5,0.5); context.fillRect(0,0,50,50);
縮放和旋轉都要用到平移,這是因為我們如果用如下的程式碼寫會出現問題
context.fillRect(50,50,50,50); context.scale(0.5,0.5); context.fillRect(150,50,50,50);
這個程式碼看起來和上面的程式碼一樣,但實際上不一樣,因為當你呼叫
context.scale#以後,所有的座標都會縮放,會使原來的一半,所以就會和下面的效果不同以下是第一段程式碼與第二段的比較:
######################## ###可以看出後一張圖發生了錯位。 ######下面介紹矩陣法:###context.fillRect(50,50,50,50); context.transform(0,0.5,0.5,0,150,50); //context.transform(0.5,0,0,0.5,150,50); context.fillRect(0,0,50,50);###和上面的一樣,注掉的程式碼效果是一樣的,同樣的,也需要先平移,同樣的,第一個參數和第四個參數這組和第二個第三個參數這組是一樣的。 ######3.旋轉###
context.fillRect(50,50,50,50); context.translate(150,50); context.rotate(Math.PI/4); context.fillRect(0,0,50,50);###如下的程式碼可以實現旋轉,同樣的原因,也需要先平移,旋轉的角度使用弧度製,效果如下:###
下面介绍的是使用矩阵法:
context.fillRect(50,50,50,50); context.transform(Math.cos(Math.PI/4),Math.sin(Math.PI/4),-Math.sin(Math.PI/4),Math.cos(Math.PI/4),150,50); //context.transform(-Math.sin(Math.PI/4),Math.cos(Math.PI/4),Math.cos(Math.PI/4) //,Math.sin(Math.PI/4),150,50); context.fillRect(0,0,50,50);
两组参数分别为cos旋转角,sin旋转角,负的sin旋转角,cos旋转角,或者为负的sin旋转角,cos旋转角,cos旋转角,sin旋转角。
如有错误,希望大家多多指正
以上就是Html5 Canvas初探学习笔记(6) -变换的内容,更多相关内容请关注PHP中文网(www.php.cn)!

HTML5代碼由標籤、元素和屬性組成:1.標籤定義內容類型,用尖括號包圍,如。 2.元素由開始標籤、內容和結束標籤組成,如內容。 3.屬性在開始標籤中定義鍵值對,增強功能,如。這些是構建網頁結構的基本單位。

HTML5是構建現代網頁的關鍵技術,提供了許多新元素和功能。 1.HTML5引入了語義化元素如、、等,增強了網頁結構和SEO。 2.支持多媒體元素和,無需插件即可嵌入媒體。 3.表單增強了新輸入類型和驗證屬性,簡化了驗證過程。 4.提供了離線和本地存儲功能,提升了網頁性能和用戶體驗。

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中