1264 线段相交(计算几何)
2017-03-15 16:41
232 查看
1264 线段相交
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出”Yes”,否则输出”No”。
Input
第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)
第2 - T + 1行:每行8个数,x1,y1,x2,y2,x3,y3,x4,y4。(-10^8 <= xi, yi <= 10^8)
(直线1的两个端点为x1,y1 | x2, y2,直线2的两个端点为x3,y3 | x4, y4)
Output
输出共T行,如果相交输出”Yes”,否则输出”No”。
Input示例
2
1 2 2 1 0 0 2 2
-1 1 1 1 0 0 1 -1
Output示例
Yes
No
一个关于计算几何总结的非常好的博客
向量的叉积如a x b 可以看成a + b 时 a向量与 b向量首尾相连,可以根据叉积的值判断b 向量在a 向量的顺时针或逆时针方向,然后就可以判断两条直线是否想交
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出”Yes”,否则输出”No”。
Input
第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)
第2 - T + 1行:每行8个数,x1,y1,x2,y2,x3,y3,x4,y4。(-10^8 <= xi, yi <= 10^8)
(直线1的两个端点为x1,y1 | x2, y2,直线2的两个端点为x3,y3 | x4, y4)
Output
输出共T行,如果相交输出”Yes”,否则输出”No”。
Input示例
2
1 2 2 1 0 0 2 2
-1 1 1 1 0 0 1 -1
Output示例
Yes
No
一个关于计算几何总结的非常好的博客
向量的叉积如a x b 可以看成a + b 时 a向量与 b向量首尾相连,可以根据叉积的值判断b 向量在a 向量的顺时针或逆时针方向,然后就可以判断两条直线是否想交
#include <cstdio> #include <cstring> #include <algorithm> #include <queue> #include <vector> using namespace std; #define M 1010 struct node { double x, y; }; node a, b, c, d; double xj(node t1, node t2, node t3)//计算两个向量的叉积 { return (t2.x-t1.x)*(t3.y-t1.y) - (t2.y-t1.y)*(t3.x-t1.x); } int main() { int t; scanf("%d", &t); while(t--) { scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &a.x, &a.y, &b.x, &b.y, &c.x, &c.y, &d.x, &d.y); if(xj(a, b, c)*xj(a, b, d)<=0 && xj(c, a, d)*xj(c, b, d)<=0)//判断叉积是否在异号,叉积为正在顺时针方向,为负则在逆时针方向,先判断c d两点是否在ab线段的两侧,再判断a b两点,都成立才正确 { printf("Yes\n"); } else { printf("No\n"); } } return 0; }
相关文章推荐
- [51NOD]-1264 线段相交 [计算几何&叉积&点积]
- 【51Nod】1264 - 线段相交(计算几何)
- 51Nod 1264:线段相交(计算几何)
- 1264 线段相交(几何计算)
- 51nod 1264:线段相交(计算几何)
- 51Nod 1264 线段相交 (计算几何)
- 51nod 1264 线段相交(计算几何)
- 51nod 1264 线段相交(计算几何)
- 51nod--1264 线段相交 (计算几何基础, 二维)
- POJ2653---Pick-up sticks (基础计算几何:线段相交问题)
- POJ 3304 Segments(计算几何 判断直线与线段相交)
- 计算几何----判断线段相交(一)
- 1605 计算几何:线段相交(快速排斥实验和跨立实验)
- poj 3565(计算几何,线段相交)
- POJ 1127 —— 计算几何 && 线段相交
- POJ2284 That Nice Euler Circuit (欧拉公式)(计算几何 线段相交问题)
- POJ1066---Treasure Hunt (计算几何基础:线段相交)
- POJ 3304(计算几何初步——判断线段和直线相交,加上枚举)
- POJ 1039——计算几何初步(判断线段与直线相交)
- 计算几何之判断两条线段相交