首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >画布动画像素化

画布动画像素化
EN

Stack Overflow用户
提问于 2014-01-09 07:05:41
回答 3查看 752关注 0票数 0

我想在画布上画一个弧形的动画,它是有效的(使用一个非常基本的动画,间隔),但结果是非常像素化/边缘的。在左边我画了一个弧线(动画),右边画了一个没有动画的弧线(平滑)。

JsFiddle:http://jsfiddle.net/C8CXz/2/

代码语言:javascript
复制
 function degreesToRadians (degrees) {
   return degrees * (Math.PI/180);     
 }

 function radiansToDegrees (radians) {
   return radians * (180/Math.PI);
 }

 var canvas = document.getElementById('circle');
 var ctx = canvas.getContext('2d');
 var start = 0, end = 0;
 var int = setInterval(function(){
     end++;
     ctx.beginPath();
     ctx.arc(80, 80, 50, degreesToRadians(0)-Math.PI/2, degreesToRadians(end)-Math.PI/2, false);
     ctx.lineWidth = 10;
     ctx.stroke();
     if(end >= 360) {
         clearInterval(int);    
     }
 }, 10);

 ctx.beginPath();
 ctx.arc(220, 80, 50, degreesToRadians(0)-Math.PI/2, degreesToRadians(360)-Math.PI/2, false);
 ctx.lineWidth = 10;
 ctx.stroke();

(原始的简单代码,不要介意它的马虎)

EN

回答 3

Stack Overflow用户

发布于 2014-01-09 07:14:09

您需要:

代码语言:javascript
复制
ctx.clearRect(0, 0, w, h);

在每个绘制循环中。

基本上,你在自己身上画了几百次相同的弧线。只有部分黑色的边缘像素一遍又一遍地变暗,直到它们完全变黑。

像这样的事情几乎所有的画布动画都清除画布,并为每次迭代绘制新的画布。

票数 1
EN

Stack Overflow用户

发布于 2014-01-09 07:14:30

尝试清除每一帧上的绘图矩形

代码语言:javascript
复制
    ctx.clearRect(x,y,width,height);

http://jsfiddle.net/C8CXz/3/

票数 1
EN

Stack Overflow用户

发布于 2014-01-09 07:14:12

我发现我首先需要清理画布。

代码语言:javascript
复制
 ctx.clearRect(0, 0, canvas.width, canvas.height);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21008473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档