canvas缓动3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas缓动3相关的知识,希望对你有一定的参考价值。

这次缓动的是旋转旋转,写完之后才知道原来rotate是绕原点旋转,而且还带着rect本身的X与Y一起,所以我采用了translate达到位移效果,以免旋转到画布外面去,画完之后效果惨不忍睹,原来是忘记还原变形了,最后加上了save和restore才让效果达到

var canvas = document.getElementById("canvas");
var cxt=canvas.getContext("2d");
var RectX=0,RectY=0,esaing=0.01;
var rotation=0,targetrotation=360;
function draw(){
cxt.beginPath();
cxt.clearRect(0,0,canvas.width,canvas.height);
cxt.fillStyle="red";
cxt.save()
cxt.translate(50,50);
rotation+=(targetrotation-rotation)*esaing;
console.log(rotation)

cxt.rotate(rotation*Math.PI/180)
cxt.rect(0,0,20,20);
cxt.fill();
cxt.restore()
cxt.closePath();
var id = requestAnimationFrame(draw);
if(targetrotation-rotation<=0.1)
{
cancelAnimationFrame(id);
}
}
draw();

以上是关于canvas缓动3的主要内容,如果未能解决你的问题,请参考以下文章

前端丨Notepad

Canvas学习笔记——弹动

2016-NJUPT-网页设计大赛总结

用缓动函数模拟物理动画

JS动画公式

caurina缓动类