2019独角兽企业重金招聘Python工程师标准>>>
boolean isCollisionPolygon(int[] xPoints, int[] yPoints, int posx, int posy) {int i, j;int y;int miny, maxy;int x1, y1;int x2, y2;int ind1, ind2;int ints;int[] polyInts;int nPoints &#61; xPoints.length;if (nPoints <3) {return false;}polyInts &#61; new int[nPoints];miny &#61; yPoints[0];maxy &#61; yPoints[0];for (i &#61; 1; i maxy) {maxy &#61; yPoints[i];}}for (y &#61; miny; y <&#61; maxy; y&#43;&#43;) {ints &#61; 0;for (i &#61; 0; i y2) {y2 &#61; yPoints[ind1];y1 &#61; yPoints[ind2];x2 &#61; xPoints[ind1];x1 &#61; xPoints[ind2];}else {continue;}if ( (y >&#61; y1) && (y y1) && (y <&#61; y2)) {polyInts[ints&#43;&#43;] &#61; (y - y1) * (x2 - x1) / (y2 - y1) &#43; x1;}}for (i &#61; polyInts.length; --i >&#61; 0; ) {for (j &#61; 0; j polyInts[j &#43; 1]) {int T &#61; polyInts[j];polyInts[j] &#61; polyInts[j &#43; 1];polyInts[j &#43; 1] &#61; T;}}}for (i &#61; 0; i &#61; polyInts[i] && posx <&#61; polyInts[i &#43; 1]) {return true;}}}}return false;}
boolean isCollisionPolygon(int[] xPoints, int[] yPoints, int posx, int posy)
使用方法.
xPoints,是多边形的X坐标,yPoints是Y坐标
posx,posy是那个要检测点的坐标