如何用Konva连续绘制分割多边形?

时间:2018-09-06 07:14:47

标签: javascript konvajs

split polygon by lineArea

我想拖动LineArea以与Konva连续分割多边形。 如果lineArea是Konva.Shape。我可以按照以下步骤分割多边形:

let prePt
lineArea.on("dragstart",function(){
   prePt = this.getAbsolutePosition();
});
lineArea.on("dragmove",function(){
   let curPt = this.getAbsolutePosition();
   move split line denoted by lineArea;
   split polygon by line
});

但是在dragmove事件中如何更改lineArea的形状?或任何改进的解决方案表示赞赏;

1 个答案:

答案 0 :(得分:1)

如果我做对了,您想创建一种“扫掠线”效果,这样,“ lineArea”将成为多边形和旋转矩形的交集。

但是,一个通用的解决方案就是:两个多边形的交集,因为矩形/ lineArea也可以视为多边形。看看这个question,因为它列出了支持布尔运算的库,而其中的一个相交就是paperjs。

如何计算这样的交集远远超出了这里的答案范围,并且既然已经完成了,我建议您使用现有的库。