wxml代碼
<view class='container'> <canvas style='width:300px;height:200px;' canvas-id='canvas'></canvas> </view>
js代碼
Page({ data: { // 開始角度 startAngle: -(1 / 2 * Math.PI), // 結束角度 endAngle: 3 / 2 * Math.PI, // 偏移角度 xAngle: Math.PI / 180 }, onLoad: function() { var that = this; var cxt_arc = wx.createContext(); var endAngle = that.data.endAngle; var xAngle = that.data.xAngle; var templeAngle = that.data.startAngle; var rander = function() { if (templeAngle >= endAngle) { return; } else if (templeAngle + xAngle > endAngle) { templeAngle = endAngle; } else { templeAngle += xAngle } cxt_arc.beginPath(); cxt_arc.setStrokeStyle('red') cxt_arc.arc(100, 50, 50, that.data.startAngle, templeAngle); cxt_arc.stroke(); cxt_arc.closePath(); wx.drawCanvas({ canvasId: 'canvas', actions: cxt_arc.getActions() }) requestAnimationFrame(rander); } rander() }, })
對requestAnimationFrame的解釋
window.requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); }; })();
canvas的arc參數
arc(圓的中心位置x坐標,圓的中心位置y坐標,圓的半徑,開始的角度,結束的角度,順時針還是逆時針[true是逆時針])
再放一張圓的角度圖,

這樣就完成了對一個圓的動態畫布的繪制