在上一篇文章《游戏中战斗伤害范围攻击计算完整全版》我们计算了扇形,多边形,圆形,等伤害范围获取。
但是前天的多边形规整计算中,我发现一个问题,就是在获取多边形判断的时候,总有验证不足的情况,也就是未包含出现!
最后百度几何原理,得到一个算法
1 /*我们可以把多边形可以看做是一条从某点出发的闭合路,可以观察到在内部的点永远都在路的同一边。2 给定线段的两个点P0(x0,y0)和P1(x1,y1),目标点P(x,y),它们有如下的关系:3 计算(y - y0) (x1 - x0) - (x - x0) (y1 - y0)4 如果答案小于0则说明P在线段的右边,大于0则在左边,等于0说明在线段上。5 */
更简单便捷的方式,支持浮点数计算:
1 /** 2 * 验证点在多边形内 3 * 4 * @param x 5 * @param z 6 * @return 7 */ 8 public boolean contains(double x, double z) { 9 /*我们可以把多边形可以看做是一条从某点出发的闭合路,可以观察到在内部的点永远都在路的同一边。10 给定线段的两个点P0(x0,y0)和P1(x1,y1),目标点P(

