我想拖动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的形状?或任何改进的解决方案表示赞赏;
答案 0 :(得分:1)
如果我做对了,您想创建一种“扫掠线”效果,这样,“ lineArea”将成为多边形和旋转矩形的交集。
但是,一个通用的解决方案就是:两个多边形的交集,因为矩形/ lineArea也可以视为多边形。看看这个question,因为它列出了支持布尔运算的库,而其中的一个相交就是paperjs。
如何计算这样的交集远远超出了这里的答案范围,并且既然已经完成了,我建议您使用现有的库。