zsh_root
2024-01-02 7b595546af704983dbafcd0d385c8768ddacefc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package fence;
import java.awt.geom.Point2D;
import java.util.Vector;
 
import PbuliClass.IsPtInPoly;
import person.Person;
import tbDataModel.TbFence;
/**ÅжϵãÊDz»ÊÇÔÚÎÞÐ§ÇøÓò*/
public class PointIsInwuxiao {
    //ÎÞÐ§ÇøÓòµÄ¼¯ºÏ
    static Vector<TbFence>  shinei_fence_vc=Fences.get_fence_vector("ÎÞÐ§ÇøÓò");    
    static int snsize=shinei_fence_vc.size();
 
    /**Person per,int x,int y,int floor,int z*/
    public  static  void  juge(Person per,int x,int y,int floor,int z) {
        if(snsize !=0) {//Èç¹ûÇøÓò´æÔÚ    
            for(int i=0;i<snsize;i++) {            
                TbFence tbfenc=shinei_fence_vc.get(i);
                String shape=tbfenc.getShape();
                String a1=tbfenc.getFloor();
                int a2=Integer.parseInt(a1);
                int h0=Integer.parseInt(tbfenc.getBaoliu12());//ΧÀ¸µ×²¿¸ß
                int h1=Integer.parseInt(tbfenc.getBaoliu11());//ΧÀ¸¶¥²¿¸ß
                if(h0==-1) {//µÈÓÚ-1±íʾ²»ÅжÏΧÀ¸¸ß¶ÈÖ»¸ù¾Ý²ãÅжÏ
                    if(floor==a2) {                        
                        boolean isin=false;
                        if(shape.equals("Ô²ÐÎ")) {                        
                            isin=Juge_in_yuan.is_in(tbfenc.getYuan_x(),x,y);
                        }else {
                            Point2D.Double point=new Point2D.Double(x,y);
                            isin=IsPtInPoly.inPoly(point, tbfenc.getPts());
                        }
                        if(isin) {//ÅжÏID×ø±êÊÇ·ñÔÚΧÀ¸ÇøÓòÄÚ
                            per.setInwuxiaoqu(1);
                            return;
                        }
                    }
                }else {
                    if(z<h0 || z>h1) {//Èç¹û±êÇ©¸ß¶ÈÔÚΧÀ¸·¶Î§ÄÚ
                        boolean isin=false;
                        if(shape.equals("Ô²ÐÎ")) {                        
                            isin=Juge_in_yuan.is_in(tbfenc.getYuan_x(),x,y);
                        }else {
                            Point2D.Double point=new Point2D.Double(x,y);
                            isin=IsPtInPoly.inPoly(point, tbfenc.getPts());
                        }
                        if(isin) {//ÅжÏID×ø±êÊÇ·ñÔÚΧÀ¸ÇøÓòÄÚ
                            per.setInwuxiaoqu(1);
                            return;
                        }
                    }    
                }
            }
            per.setInwuxiaoqu(0);//ÉèÖñêÇ©ÔÚÎÞÐ§ÇøÓòÄÚ
        }
    }
    
 
}