canvas 圍繞中心旋轉
通過rotate()方法可以實現圖案的旋轉功能。
上述方法具體使用可以參閱canvas rotate()一章節。
預設,圖案是圍繞畫布座標系的原點進行旋轉,很多時候可能需要圍繞圖案的中心旋轉。
本文以矩形圖案圍繞其中心點進行旋轉進行一下介紹。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> canvas{ border:1px solid black; } </style> <script> window.onload = () => { let cvs=document.getElementById("ant"); let ctx=cvs.getContext("2d"); ctx.translate(100,50); let angle=10; let rotate = () => { ctx.clearRect(-100,-50,200,100); ctx.rotate(angle*Math.PI/180); ctx.fillRect(-50,-25,100,50); setTimeout(rotate,16); } rotate() } </script> </head> <body> <canvas id="ant"></canvas> </body> </html>
程式碼執行效果截圖如下:
上面只是一個靜態示意圖,實際程式碼能夠讓矩形圍繞其中心旋轉。
程式碼分析如下:
首先要明確translate()和rotate()方法都是對於座標系的操作。
[JavaScript] 純文字檢視 複製程式碼ctx.translate(100,50);
預設,畫布的原點位置在左上角(0,0)位置。
圖示如下:
通過上述程式碼可以將畫布座標系的原點位置移動到原來座標系的(100,50)位置。
[JavaScript] 純文字檢視 複製程式碼let angle=10;
既然rotate()方法也是對座標系的操作,上述程式碼規定每次座標系旋轉的角度。
[JavaScript] 純文字檢視 複製程式碼ctx.rotate(angle*Math.PI/180);
有朋友可能要問,為什麼旋轉的角度不用累加,因為旋轉對座標系的操作,所以無需累加。
上述程式碼可以將整個座標系旋轉angle度角。
圖示如下:
上述程式碼演示了將座標系旋轉一定的角度。
[JavaScript] 純文字檢視 複製程式碼ctx.fillRect(-50,-25,100,50);
採用上述程式碼繪製一個黑色的矩形,如果不專門設定填充色,預設為黑色。
在一個傾斜的座標系繪製圖案,圖案預設也是傾斜的。
矩形的繪製起始座標是(-50,-25),特別注意的是現在是以新的座標系原點為參考,而不是原來的左上角。
很明顯分別從x軸和y軸的反方向50和25畫素出開始繪製,矩形的中心恰好與座標系中心重合。
[JavaScript] 純文字檢視 複製程式碼ctx.clearRect(-100,-50,200,100);
上述程式碼是將上一次繪製的圖案擦除,你也可以精確設定擦除的區域,也可以設定一個大區域保證擦除效果。
相關文章
- canvas 圖形圍繞中心旋轉Canvas
- unity 模型無法繞自身中心旋轉Unity模型
- Games101:繞任意軸旋轉GAM
- p361旋轉中心
- css地球月亮太陽環繞旋轉CSS
- canvas 旋轉角度不需要累加Canvas
- 直播平臺開發,HTML/JS滿足圖片繞中心旋轉的條件HTMLJS
- [轉]旋轉矩陣:點旋轉和座標系旋轉矩陣
- 130被圍繞的區域
- 旋轉字串字串
- 旋轉相簿
- 130. 被圍繞的區域
- 將圖片旋轉(這裡不是旋轉imageView)View
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- 《轉載》移動OA辦公,圍繞著企業身邊的小助手
- AVL樹旋轉
- (五)旋轉影像
- LeetCode:旋轉影像LeetCode
- LeetCode-130-被圍繞的區域LeetCode
- 玩轉「Canvas」Canvas
- 旋轉連結串列
- ubuntu螢幕旋轉Ubuntu
- 旋轉演算法演算法
- canvas非零繞組規則與奇偶規則Canvas
- CSS3動畫(360度旋轉、旋轉放大、放大、移動)CSSS3動畫
- cad旋轉的快捷鍵命令 cad旋轉方向怎麼調整
- 怎麼旋轉圖片?BenVista PhotoZoom Pro旋轉圖片的方法OOM
- 影像縮放、旋轉、翻轉、平移
- 圍繞DOM元素節點的增刪改查
- 圍繞ifelse與業務邏輯的那些梗
- 產品管理圍繞的五個核心問題
- 線性代數在前端中的應用(二):實現滑鼠拖拽旋轉元素、Canvas圖形前端Canvas
- LeetCode 189 旋轉陣列LeetCode陣列
- Android 禁止螢幕旋轉Android
- SVG矩形旋轉動畫SVG動畫
- SVG 旋轉文字字元SVG字元
- 卡片旋轉動畫效果動畫