Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向现有画布元素添加另一个笔划_Javascript_Jquery_Canvas_Svg_Html5 Canvas - Fatal编程技术网

Javascript 向现有画布元素添加另一个笔划

Javascript 向现有画布元素添加另一个笔划,javascript,jquery,canvas,svg,html5-canvas,Javascript,Jquery,Canvas,Svg,Html5 Canvas,如何在同一个圆中添加另一个具有不同颜色和长度的笔划? 此脚本使用Mootools库。它可以在纯JavaScript或jQuery中转换吗 小提琴: 谢谢:) 画第二条路对我来说似乎很好 // SVG stuff var ctx = document.id('counter').getContext('2d'); var circ = Math.PI * 2; var quart = Math.PI / 2; var imd = ctx.getImageData(0, 0, 160, 160);

如何在同一个圆中添加另一个具有不同颜色和长度的笔划? 此脚本使用Mootools库。它可以在纯JavaScript或jQuery中转换吗

小提琴:

谢谢:)


画第二条路对我来说似乎很好

// SVG stuff
var ctx = document.id('counter').getContext('2d');
var circ = Math.PI * 2;
var quart = Math.PI / 2;

var imd = ctx.getImageData(0, 0, 160, 160);

var draw = function(current) {
    ctx.putImageData(imd, 0, 0);
    ctx.beginPath();
    ctx.strokeStyle = '#ff00ab';
    ctx.lineCap = 'square';
    ctx.lineWidth = 10;
    ctx.arc(119, 70, 60, -(quart), ((circ) * current) - quart, false);
    ctx.stroke();

    ctx.beginPath();
    ctx.strokeStyle = '#bb00bc';
    ctx.lineCap = 'square';
    ctx.lineWidth = 5;
    ctx.arc(119, 70, 60, -(quart), ((circ) * current) - quart, false);
    ctx.stroke();
}

var myFx = new Fx({
    duration: 5500,
    transition: 'bounce:out',
    onStep: function(step){
        draw(step / 100);
    }
});

myFx.set = function(now){
    var ret = Fx.prototype.set.call(this, now);
    this.fireEvent('step', now);
    return ret;
};

myFx.start(0, 80);

画另一个圆。我试过了,但只有第二个笔划是可见的。你能更新我的小提琴吗?但是另一个笔划需要不同的长度,我应该为此创建一个新的功能吗@如果你愿意,有很多不同的方法可以做到。这个怎么样?我使用的是手动值。有更好的方法吗?a)你不能在评论中问更多的问题(如果你真的需要,可以使用“提问”按钮问一个新的问题)b)你在上面问过的问题的答案会偏离主题,因为主要是基于观点的。
// SVG stuff
var ctx = document.id('counter').getContext('2d');
var circ = Math.PI * 2;
var quart = Math.PI / 2;

var imd = ctx.getImageData(0, 0, 160, 160);

var draw = function(current) {
    ctx.putImageData(imd, 0, 0);
    ctx.beginPath();
    ctx.strokeStyle = '#ff00ab';
    ctx.lineCap = 'square';
    ctx.lineWidth = 10;
    ctx.arc(119, 70, 60, -(quart), ((circ) * current) - quart, false);
    ctx.stroke();

    ctx.beginPath();
    ctx.strokeStyle = '#bb00bc';
    ctx.lineCap = 'square';
    ctx.lineWidth = 5;
    ctx.arc(119, 70, 60, -(quart), ((circ) * current) - quart, false);
    ctx.stroke();
}

var myFx = new Fx({
    duration: 5500,
    transition: 'bounce:out',
    onStep: function(step){
        draw(step / 100);
    }
});

myFx.set = function(now){
    var ret = Fx.prototype.set.call(this, now);
    this.fireEvent('step', now);
    return ret;
};

myFx.start(0, 80);