【计算几何】击中目标
Time Limit:1000MS
Total Submit:14 Accepted:9
Description
击中目标(inside.pas/c/cpp)
【问题描述】
现需要一个系统,对射击的准确率进行测试。一个射击者对一个目标发射n颗子弹,已知发射n颗子弹所击中的位置和目标所在位置,判断有多少颗子弹能打到目标内。目标是一个凸多边形区域,并且按顺时针或逆时针逐一给出顶点坐标,每一发子弹击中位置是一个坐标。规定子弹击中目标的边上或顶点也算打到目标内。请你编程实现这个系统。
Input
输入文件中包含以下内容,第一行为多边形顶点数n和发射子弹数目m;接下来n行为每个顶点坐标(按顺时针或逆时针顺序);再接下来m行为每颗子弹所击中的位置坐标。
Output
输出文件输出占一行,输出子弹击中目标的数目。
Sample Input
4 6 0 0 2 3 5 5 5 -1 5 3 7 3 5 -1 5 -2 2 3 4 1
Sample Output
4
Source
读入分为 顺时针 和 逆时针 两种。
当顺时针时,第三个读入的点在 第一,二个读入点组成的向量 的右边,d=false;
当逆时针时,第三个读入的点在 第一,二个读入点组成的向量 的左边,d=true;
当顺时针时,一点必须在所有边的右边(pan=false)或在边上,这点才在多边形中
当逆时针时,一点必须在所有边的左边(pan=true )或在边上,这点才在多边形中
type
var
function pan(p1,p2,x,y:longint):boolean;
var
begin
end;
function add(x,y:longint):boolean;
var
begin
end;
begin
end.