咨询实现类似Photoshop套索工具添加模式的手绘图形合并算法
咨询实现类似Photoshop套索工具添加模式的手绘图形合并算法
嘿,我正在做一个需要合并用户手绘图形的应用,就像Photoshop里套索工具的添加模式那样。
我试着找相关的算法,但一直没找到合适的——之前了解过简单多边形相关的内容,但手绘出来的图形往往不是简单多边形,那套逻辑根本用不上。
下面是我用Flutter尝试实现的步骤:
- 获取图形的点集,判断它是否是顺时针方向,如果是就转为逆时针
- 计算两条路径的交点
- 合并路径并获取
PathMetrics - 若计算得到的
PathMetrics数量大于1,就认为图形存在孔洞并拆分(这个逻辑是错的,比如画一个“8”字形的图形,哪怕没有孔洞也会得到多个PathMetrics) - 将两条线合并为一条
- 返回包含轮廓和内部区域的列表
但看得出来,这个实现有很多问题,就算忽略PathMetrics的判断逻辑,还有不少其他的坑没解决。
备注:内容来源于stack exchange,提问作者jungeyonoh
相关产品推荐
相关产品推荐

