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模型
- 直播平臺開發,HTML/JS滿足圖片繞中心旋轉的條件HTMLJS
- 圖形學 旋轉與投影矩陣—2矩陣
- 圖形學 旋轉與投影矩陣-3矩陣
- 圖形學 旋轉與投影矩陣—1矩陣
- Games101:繞任意軸旋轉GAM
- 線性代數在前端中的應用(二):實現滑鼠拖拽旋轉元素、Canvas圖形前端Canvas
- p361旋轉中心
- css地球月亮太陽環繞旋轉CSS
- canvas 旋轉角度不需要累加Canvas
- 畫影圖形: SVG & Canvas 圖形對比SVGCanvas
- 變形元素旋轉css陰影CSS
- 將圖片旋轉(這裡不是旋轉imageView)View
- 怎麼旋轉圖片?BenVista PhotoZoom Pro旋轉圖片的方法OOM
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- 旋轉圖片驗證
- QT 自定義QGraphicsItem 縮放後旋轉 圖形出現漂移問題QT
- 滑鼠懸浮實現環形旋轉效果
- 透過 cavnas 旋轉圖片
- php實現圖片旋轉PHP
- canvas核心技術-如何繪製圖形Canvas
- jQuery環形旋轉載入進度條效果jQuery
- [轉]旋轉矩陣:點旋轉和座標系旋轉矩陣
- 【Go語言繪圖】圖片的旋轉Go繪圖
- 滑鼠懸浮圖片旋轉效果
- CSS3圖片旋轉效果CSSS3
- WPF基礎:在Canvas上繪製圖形Canvas
- Flutter 圖片裁剪旋轉翻轉編輯器Flutter
- canvas系列教程之多線條組成圖形Canvas
- js控制專輯圖片旋轉效果JS
- 130被圍繞的區域
- 圖形處理:給 Canvas 文字填充線性漸變Canvas
- CSS3滑鼠懸浮圖示旋轉CSSS3
- canvas 繪製圓形Canvas
- 旋轉字串字串
- 旋轉相簿
- 130. 被圍繞的區域