如何使用KineticJS创建圆形剪辑?

时间:2013-08-27 02:40:30

标签: canvas kineticjs

我想使用循环路径剪辑组,但该组的clipFunc似乎没有执行,有关如何使用clipFunc属性的文档有点不稳定。

Here is a jsfiddle我当前的尝试。

以下是相关代码:

var stage = new Kinetic.Stage({
  container: 'container',
  width: 500,
  height: 500
});
var layer = new Kinetic.Layer();
var group = new Kinetic.Group({
   clipFunc: function(canvas) {
      var context = canvas.getContext();
      context.beginPath();
      context.arc(250, 250, 50, 0, 2 * Math.PI, false);
      context.clip();
   }
});

var rect = new Kinetic.Rect({
   x: 150,
   y: 225,
   width: 200,
   height: 200,
   fill: 'blue',
   stroke: 'black',
   strokeWidth: 2
});

group.add(rect);
layer.add(group);
stage.add(layer);

目前,如果我在clipFunc函数中设置了一个断点,那么它永远不会被击中。

1 个答案:

答案 0 :(得分:3)

删除了对clipFunc的支持,转而使用剪辑,剪辑只是一个矩形剪辑区域。如果您想模拟圆形剪辑,可以使用toImage()将组转换为图像,然后绘制带有图像填充图案的圆。

clipFunc属性被删除,因为画布剪辑功能在非矩形剪裁区域中效果不佳,因为边缘是非抗锯齿的(这对于圆形路径尤其明显)