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
- 直播平臺開發,HTML/JS滿足圖片繞中心旋轉的條件HTMLJS
- canvas實現的旋轉太極圖效果Canvas
- jQuery隨滑鼠旋轉的圖形效果jQuery
- 圖形學 旋轉與投影矩陣—1矩陣
- 圖形學 旋轉與投影矩陣—2矩陣
- 圖形學 旋轉與投影矩陣-3矩陣
- 線性代數在前端中的應用(二):實現滑鼠拖拽旋轉元素、Canvas圖形前端Canvas
- 畫影圖形: SVG & Canvas 圖形對比SVGCanvas
- css地球月亮太陽環繞旋轉CSS
- canvas圖形編輯器Canvas
- canvas 旋轉角度不需要累加Canvas
- Canvas 畫圖 - 滑鼠移動圖形Canvas
- Games101:繞任意軸旋轉GAM
- 【開源】canvas影象裁剪、壓縮、旋轉Canvas
- canvas實現的旋轉的太極圖效果程式碼例項Canvas
- canvas 影象旋轉與翻轉姿勢解鎖Canvas
- 變形元素旋轉css陰影CSS
- 將圖片旋轉(這裡不是旋轉imageView)View
- canvas小球旋轉loadding載入效果Canvas
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- canvas 繪製旋轉一定角度的矩形Canvas
- canvas實現太陽、地球和月亮旋轉效果Canvas
- canvas旋轉核輻射危險警告標誌Canvas
- QT 自定義QGraphicsItem 縮放後旋轉 圖形出現漂移問題QT
- canvas核心技術-如何繪製圖形Canvas
- HTML5使用canvas繪製圖形HTMLCanvas
- html中圖片旋轉HTML
- 滑鼠懸浮實現環形旋轉效果
- canvas繪製旋轉一定角度的矩形效果Canvas
- CSS3元素環繞另一個元素旋轉CSSS3
- WPF基礎:在Canvas上繪製圖形Canvas
- 怎麼旋轉圖片?BenVista PhotoZoom Pro旋轉圖片的方法OOM
- php實現圖片旋轉PHP