wap网站建设案例,网站建设哪里去学,建设手机版网站,wordpress网站如何添加内链题意 给出由n条线段围成的多边形#xff08;每条边均平行于坐标轴#xff09;#xff0c;以及一个点(x0,y0)#xff0c;问这个点是在形内或是形外或是形上 分析 对于在线段上#xff0c;比较容易判断#xff0c;直接比较一下坐标的位置即可#xff1b; 若不在形上#…题意 给出由n条线段围成的多边形每条边均平行于坐标轴以及一个点(x0,y0)问这个点是在形内或是形外或是形上 分析 对于在线段上比较容易判断直接比较一下坐标的位置即可 若不在形上则在该点处向上引一条射线。因为是向上引的所以只和与x轴平行的线有交点记录交点个数。 注意在记录交点个数时如果在一条线段的短点只记一侧的别记重了。 这样统计相交次数。如果为奇数则在形内偶数形外。 注意读入数据后比较一下大小并交换。 Accepted Code 1 /*2 PROBLEM:sgu 1243 AUTHER:Rinyo4 MEMO:计算几何5 */6 #includecstdio7 const int maxn(10030);8 int x1[maxn],x2[maxn],y1[maxn],y2[maxn];9 int main()
10 {
11 freopen(in.txt,r,stdin);
12 int n;
13 scanf(%d,n);
14 for (int i1;in;i)
15 {
16 scanf(%d%d%d%d,x1[i],y1[i],x2[i],y2[i]);
17 if (x1[i]x2[i])
18 {
19 if (y1[i]y2[i])
20 {int ty1[i];y1[i]y2[i];y2[i]t;}
21 }
22 if (y1[i]y2[i])
23 {
24 if (x1[i]x2[i])
25 {int tx1[i];x1[i]x2[i];x2[i]t;}
26 }
27 }
28 int x0,y0;
29 scanf(%d%d,x0,y0);
30 for (int i1;in;i)
31 {
32 if ((x1[i]x2[i]) (x1[i]x0) (y1[i]y0) (y2[i]y0))
33 {
34 printf(BORDER);
35 return 0;
36 }
37 if ((y1[i]y2[i]) (y1[i]y0) (x1[i]x0) (x2[i]x0))
38 {
39 printf(BORDER);
40 return 0;
41 }
42 }
43 int t0;
44 for (int i1;in;i)
45 if ((y1[i]y2[i]) (y1[i]y0) (x1[i]x0) (x2[i]x0)) t;
46 if (t 11) printf(INSIDE);
47 else printf(OUTSIDE);
48 return 0;
49 } 转载于:https://www.cnblogs.com/Rinyo/archive/2013/03/19/2970180.html