[SGU]124. Broken line
来源:互联网 发布:java语言就业培训 编辑:程序博客网 时间:2024/04/27 21:29
Analysis
判断一个点是否在一个多边形之内。这个多边形不一定是凸多边形,但是所有的边都平行于坐标轴,那么从要判断的点做一条射线,判断与多边形的交点个数是否为奇数即可。我是从该点沿y轴正方向做一条射线,判断相交时注意端点的情况。
Accepted Code
type point=record x,y:longint; end;var p:array[1..10000,1..2] of point; k:point; count,i,n:longint;procedure swap(var a,b:longint);var tmp:longint;begin tmp:=a; a:=b; b:=tmp;end;begin readln(n); for i:=1 to n do begin readln(p[i,1].x,p[i,1].y,p[i,2].x,p[i,2].y); if p[i,2].x<p[i,1].x then swap(p[i,1].x,p[i,2].x); if p[i,2].y<p[i,1].y then swap(p[i,1].y,p[i,2].y); end; readln(k.x,k.y); count:=0; for i:=1 to n do begin if ((p[i,1].x=k.x) and (p[i,2].x=k.x) and (p[i,1].y<=k.y) and (p[i,2].y>=k.y)) or ((p[i,1].y=k.y) and (p[i,2].y=k.y) and (p[i,1].x<=k.x) and (p[i,2].x>=k.x)) then begin writeln('BORDER'); exit; end; if ((p[i,1].y>k.y) and (p[i,1].x<k.x) and (k.x<=p[i,2].x)) then inc(count); end; if count and 1>0 then writeln('INSIDE') else writeln('OUTSIDE');end.
- [SGU]124. Broken line
- sgu 124 Broken line
- SGU 124 Broken line(计算几何)
- SGU 124. Broken line 计算几何 判断点是否在多边形内
- SGU 124. Broken line(射线法判断一个点是否在一个多边形内)
- sgu-243 Broken Chessboard
- sgu124:Broken line
- SGU124 Broken line
- [SGU124] Broken line && 计算几何
- POJ 3409 Broken line 英文少
- SGU
- SGU
- SGU
- SGU
- SGU
- SGU
- (SGU
- SGU
- lock-free线程安全算法
- xp系统定时关机
- ArcGIS JavaScript API开发的地图-工具栏
- NT 服务器管理相关事项
- 在串口通信开发中实现自动查找串口端口的方法
- [SGU]124. Broken line
- 使用Fiddler提高前端工作效率 (实例篇)
- 请设计一个一百亿的计算器
- sql注入攻击详解(二)sql注入过程详解
- 用SAX方式在java程序中读取xml文件
- 兼容IE6的十条有用的修复方法
- linux内存寻址
- 使用cookie显示曾经访问过的商品
- 三种连接池的配置