Javascript 带Kineticjs的线型

Javascript 带Kineticjs的线型,javascript,animation,canvas,kineticjs,Javascript,Animation,Canvas,Kineticjs,好的,我试着画一条线,它以一个有图案的图像作为它的笔划,而不是一个纯色。我知道用图案填充矩形或其他形状是可能的,但这不是我想要做的,我严格使用线条。所以我的问题是。是否可以将图像传递到图案中,并将该图案用作线的笔划?或者我应该创建一个Rect并用我的模式填充每个Rect吗 var line = new Kinetic.Line({ points: [0, 0, 0, 500], stroke: /Here's where I want the pattern to go\, strokeWidt

好的,我试着画一条线,它以一个有图案的图像作为它的笔划,而不是一个纯色。我知道用图案填充矩形或其他形状是可能的,但这不是我想要做的,我严格使用线条。所以我的问题是。是否可以将图像传递到图案中,并将该图案用作线的笔划?或者我应该创建一个Rect并用我的模式填充每个Rect吗

var line = new Kinetic.Line({
points: [0, 0, 0, 500],
stroke: /Here's where I want the pattern to go\,
strokeWidth: strokeWidth

}))

Html画布允许使用图案绘制笔划

KineticJS不允许有图案的笔划

但您可以使用Kinetic.Shape并抓取一个真正的html画布上下文,如下所示:

演示:


这正是我想要的。非常感谢你。我知道形状对象对于动力学来说是比较新的,也许我应该开始更频繁地使用它。再次感谢。我能帮你做这个吗?例如,我需要将其作为一条线,然后用图案展开该线。是的。本例使用固定点。您可以将示例中的固定点替换为相对点——直线三角形.x()、三角形.y()、三角形.strokeWidth()等。然后你可以在这些节点值之间进行选择,比如:
ctx.moveTo(100,50);三角形x(100);三角形y(250)?我对Canvas不是很熟悉,最近才开始使用它。
var triangle = new Kinetic.Shape({
  sceneFunc: function(context) {
    var ctx=this.getContext()._context;
    ctx.save();
    ctx.beginPath();
    ctx.moveTo(100, 50);
    ctx.lineTo(320, 80);
    ctx.quadraticCurveTo(200, 100, 160, 170);
    ctx.closePath();
    var pattern=context.createPattern(img, 'repeat');
    ctx.strokeStyle=pattern;
    ctx.lineWidth=20;
    ctx.stroke();
    ctx.restore();
  },
});