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
- canvas 圍繞中心旋轉Canvas
- canvas旋轉太極圖效果Canvas
- canvas 圖形圍繞中心旋轉Canvas
- 【開源】canvas影象裁剪、壓縮、旋轉Canvas
- canvas 影象旋轉與翻轉姿勢解鎖Canvas
- Android 對佈局進行任意角度旋轉Android
- canvas小球旋轉loadding載入效果Canvas
- canvas實現的旋轉太極圖效果Canvas
- Python下獲取視訊的旋轉角度資訊Python
- 自定義圓環,跟隨手指旋轉角度加減layer
- css控制div元素旋轉指定角度程式碼例項CSS
- canvas實現太陽、地球和月亮旋轉效果Canvas
- canvas旋轉核輻射危險警告標誌Canvas
- CSS3滑鼠懸浮元素旋轉一定角度CSSS3
- JS獲取照片拍攝的角度屬性,用於旋轉控制JS
- 視覺化基礎:已知2點座標,如何求旋轉角度?視覺化
- 大角度非迭代的空間座標旋轉C#實現C#
- CSS3實現的div元素旋轉一定角度效果CSSS3
- Box2d 設定物體旋轉固定角度(不使用關節)
- canvas實現的旋轉的太極圖效果程式碼例項Canvas
- 旋轉變換(一)旋轉矩陣矩陣
- 基於HTML5 Canvas 實現向量工控風機葉輪旋轉HTMLCanvas
- 基於HTML5 Canvas實現工控2D葉輪旋轉HTMLCanvas
- 旋轉字串字串
- 旋轉相簿
- canvas橫屏簽名,簽名圖片旋轉90度生成base64Canvas
- 將圖片旋轉(這裡不是旋轉imageView)View
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- 旋轉矩陣矩陣
- 矩陣旋轉矩陣
- Activity的旋轉
- 三維旋轉:旋轉矩陣,尤拉角,四元數矩陣
- plsql逐行累加SQL
- 玩轉「Canvas」Canvas
- CSS3動畫(360度旋轉、旋轉放大、放大、移動)CSSS3動畫
- 利用三維旋轉矩陣在空間中旋轉平面矩陣