meteoinfo / wContour

Contour related algorithm

Home Page:http://www.meteothink.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于裁剪判断的问题

jinfengg opened this issue · comments

imageimage

问题描述:我要裁剪的是小圈的范围(下面那个圈),未裁剪的时候是有颜色的,裁剪完小圈这个对象变没有了,绘制变成空白。白色那个洞是正常的,我只是调试过程不绘制该洞颜色。
问题过程:
1、白色的这个洞,是属于HoleLines里的的对象,跟小圈实际上没有交集。
2、在Contour.java这个类里面的4805行,
if (!isExtentCross(plExtent, cutExtent)) { continue; }这个判断是true,不会跳过,因为根据最大外边界的范围判断是有相交的,实际又没有。
if (pointInPolygon(clipPList, holePList.get(0))) 这个方法判断是false,然后执行newLines.add(holePList);,把这个实际没有相交的洞放入了newLines。
3、后面循环裁剪的时候,aPList的值会变成newLines中的最后一个对象,这个对象就是上面那个空白的洞,
所以在代码最后的判断里,会变成白色洞的边界的判断了,else if (pointInPolygon(aPList, clipPList.get(0))) 判断结果为false,然后就没有返回任何的边界了。
4、目前我把这行代码改为最外圈多边形进行判断,else if (pointInPolygon(inPolygon.OutLine.PointList, clipPList.get(0))),然后可以正常裁剪,但是不知道改这个会不会有其他影响,或者这里是不是需要改为循环判断newLines中的对象。

If you think this is a bug, please make a pull request to fix it with the detailed test information. Thanks!

The pull request has been merged. Thanks for your effort!