一张大图,上面有一个多边形,不一定规则,但是肯定每个角都是直角,
例如“凹”“凸”这样的形状,
然后我有这个多边形在那个大图上的各个顶点的坐标,按照顺序的坐标,顺时针或者逆时针,
我想把这个图形从这个大图上切下来,
切成包围这个多边形的小矩形,但是不属于这个多边形内部的地方要置为白色,
我要怎么切速度最快呢?我现在的算法是:根据顶点坐标,先切个包围多边形的小矩形出来,
之后针对这个小矩形,每个点计算,计算这个点发出的射线和边框的交点数,来判断这个店是否在多边形内部,
但是这种算法很浪费时间,
哪位达人有更方便快速的方法,告诉我一下啊,谢谢了~!

解决方案 »

  1.   

    可不可以这样:
    先以垂直方向的多边形边界线所在直线为边界,将你切割出来的小矩形为几个子矩形,比如“凸”就被分成左中右三个子矩形
    再以水平方向的多边形边界线所在直线为边界,将每个子矩形再分为孙矩形,“凸”:左:上下两个孙矩形,中:一个孙矩形,右:上下两个孙矩形
    然后,判断每个孙矩形和多边形垂直边界线的位置关系分别填充颜色或者先水平切再垂直切也一样