在上一篇文章《游戏中战斗伤害范围攻击计算完整全版》我们计算了扇形,多边形,圆形,等伤害范围获取。

但是前天的多边形规整计算中,我发现一个问题,就是在获取多边形判断的时候,总有验证不足的情况,也就是未包含出现!

最后百度几何原理,得到一个算法

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(
        
		

网友评论