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
- svg矩形圍繞自身中心旋轉效果SVG
- unity 模型無法繞自身中心旋轉Unity模型
- canvas旋轉太極圖效果Canvas
- css地球月亮太陽環繞旋轉CSS
- 直播平臺開發,HTML/JS滿足圖片繞中心旋轉的條件HTMLJS
- canvas 旋轉角度不需要累加Canvas
- Games101:繞任意軸旋轉GAM
- 【開源】canvas影象裁剪、壓縮、旋轉Canvas
- canvas 影象旋轉與翻轉姿勢解鎖Canvas
- canvas小球旋轉loadding載入效果Canvas
- canvas實現的旋轉太極圖效果Canvas
- canvas 繪製旋轉一定角度的矩形Canvas
- canvas實現太陽、地球和月亮旋轉效果Canvas
- canvas旋轉核輻射危險警告標誌Canvas
- canvas繪製旋轉一定角度的矩形效果Canvas
- CSS3元素環繞另一個元素旋轉CSSS3
- 三維圖形繞任意軸旋轉矩陣求解步驟矩陣
- canvas實現的旋轉的太極圖效果程式碼例項Canvas
- 旋轉變換(一)旋轉矩陣矩陣
- Canvas中的非零環繞規則原理Canvas
- 基於HTML5 Canvas 實現向量工控風機葉輪旋轉HTMLCanvas
- 基於HTML5 Canvas實現工控2D葉輪旋轉HTMLCanvas
- 旋轉字串字串
- 旋轉相簿
- 產品管理圍繞的五個核心問題
- 圍繞DOM元素節點的增刪改查
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- 學習Java的過程中主要圍繞以下幾個方面來學習 (轉)Java
- canvas非零繞組規則與奇偶規則Canvas
- 將圖片旋轉(這裡不是旋轉imageView)View
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- LeetCode-130-被圍繞的區域LeetCode
- 旋轉矩陣矩陣
- 矩陣旋轉矩陣
- Activity的旋轉
- 三維旋轉:旋轉矩陣,尤拉角,四元數矩陣
- 圍繞 transformers 構建現代 NLP 開發環境ORM開發環境