qq_33655095 2016-09-06 03:27 采纳率: 0%
浏览 1177

canvas毛边的问题,大神求救!!!

用canvas绘制了圆形动态进度条,但是有毛边,请问怎样处理?

// canvas进度条。 p为当前的时间。s为开始的时间。 百分比=(现在的时间-开始的时间)/14h
function cvs(startTime){
// canvas代码
var c=document.getElementById('cvs');
//获取屏幕的宽度
var clientWidth = document.documentElement.clientWidth;
//根据设计图中的canvas画布的占比进行设置
var canvasWidth = Math.floor(clientWidth*600/1082);
//设置canvas的宽高
c.setAttribute('width',canvasWidth+'px');
c.setAttribute('height',canvasWidth+'px');

        var cxt=c.getContext("2d");

        //改变画布的原点位置
        cxt.translate(canvasWidth / 2,canvasWidth / 2)
        //根据屏幕大小求得画布的缩放比例
        var scale = canvasWidth / clientWidth;

// console.log(scale);
// 画布的缩放
cxt.scale(scale,scale);
// 圆弧的半径长度
var r = canvasWidth - 45;

        // 底层圆弧
        cxt.beginPath();
        cxt.strokeStyle="#2FD8B1";
        cxt.lineWidth = scale * 30;
        cxt.lineCap = 'round';
        cxt.arc(0,0,r,(-235)*Math.PI/180,55*Math.PI/180,false);
        cxt.stroke();
        // 清除毛边
        cxt.globalCompositeOperation = 'source-atop';

        var d = new Date();
        var nowTime = d.getTime();
        var percent = (nowTime - startTime) / (14 * 60 * 60 * 1000);

        alert(startTime); 

        if(percent === 0){
            var percent = nowTime / (14 * 60 * 60 * 1000 + startTime);
         };
        if(percent < 0){
            return;
        };

        var p = 0;
        var timer = setInterval(function () {
            p = p + 0.01;
            if(p >= percent){
                clearInterval(timer);
                return;
            }           
            cxt.beginPath();
            cxt.strokeStyle="#d2ef62";
            cxt.lineWidth = scale * 30;
            cxt.lineCap = 'round';
            cxt.lineJoin = 'round';
            cxt.arc(0,0,r,(-235)*Math.PI/180,(-235+p*290)*Math.PI/180,false);
            cxt.stroke();
        },50)


    }
  • 写回答

1条回答

  • Mop.Duan 2016-09-06 04:01
    关注

    能把你绘制的代码拿来看看嘛?要不找不到问题

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算