canvas 旋轉角度不需要累加
如果您感覺一些程式碼比較奇怪,可能有如下幾種可能:
(1).程式碼確實比較奇怪。
(2).對於程式碼原理不夠了解。
本文分享一段通過canvas繪製旋轉圖案的程式碼。
它實現了每隔指定時間旋轉一定角度的功能,程式碼例項如下:
[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>
上述程式碼實現了矩形圖案的旋轉效果。
但是有沒有發現一個奇怪的現象,角度不用累加。
比如其他效果如果需要實現這種類似的效果,可能需要a=a+1類似累加。
這是因為rotate()旋轉是對座標系的旋轉,可以認為每一次旋轉後都"歸零"。
再次旋轉就以新的座標系為參考,而不是以最初的座標系為參考,所以無需進行累加。
相關文章
- canvas 圍繞中心旋轉Canvas
- canvas 圖形圍繞中心旋轉Canvas
- Python下獲取視訊的旋轉角度資訊Python
- 自定義圓環,跟隨手指旋轉角度加減layer
- CSS3滑鼠懸浮元素旋轉一定角度CSSS3
- [轉]旋轉矩陣:點旋轉和座標系旋轉矩陣
- JS獲取照片拍攝的角度屬性,用於旋轉控制JS
- 大角度非迭代的空間座標旋轉C#實現C#
- 視覺化基礎:已知2點座標,如何求旋轉角度?視覺化
- 旋轉字串字串
- 旋轉相簿
- 將圖片旋轉(這裡不是旋轉imageView)View
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- AVL樹旋轉
- (五)旋轉影像
- LeetCode:旋轉影像LeetCode
- 玩轉「Canvas」Canvas
- 旋轉連結串列
- ubuntu螢幕旋轉Ubuntu
- 旋轉演算法演算法
- CSS3動畫(360度旋轉、旋轉放大、放大、移動)CSSS3動畫
- cad旋轉的快捷鍵命令 cad旋轉方向怎麼調整
- 怎麼旋轉圖片?BenVista PhotoZoom Pro旋轉圖片的方法OOM
- 影像縮放、旋轉、翻轉、平移
- 線性代數在前端中的應用(二):實現滑鼠拖拽旋轉元素、Canvas圖形前端Canvas
- LeetCode 189 旋轉陣列LeetCode陣列
- Android 禁止螢幕旋轉Android
- SVG矩形旋轉動畫SVG動畫
- SVG 旋轉文字字元SVG字元
- 卡片旋轉動畫效果動畫
- p361旋轉中心
- orientationchange 螢幕旋轉事件事件
- 箭頭旋轉程式碼
- 【LeetCode】796. 旋轉字串LeetCode字串
- CAD如何使用旋轉命令
- 旋轉圖片驗證
- LeetCode-048-旋轉影像LeetCode