判断两条线段是否相交
2017-12-17 22:55
267 查看
说明
包括了一个或多个点重合的情况。输入点的坐标顺序为Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,判断线段AB与线段CD是否相交。
由于问题比较简单,没有用到向量、叉积什么的,而是用了奇怪的作图法+不证明直接推广法(?)。
可以画个图验证一下。对于稍难的计算几何题,这些奇技淫巧就没有用了。
#include <stdio.h> int main() { int x1, y1, x2, y2, x3, y3, x4, y4; while (~scanf("%d%d%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)){ double k = 1.0 * (y1 - y2) / (x1 - x2); double n = y1 - k * x1; double ans1 = k * x3 + n, ans2 = k * x4 + n; if ((ans1 <= y3 && ans2 >= y4) || (ans1 >= y3 && ans2 <= y4)) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交(叉积)
- 关于如何判断在平面上的两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交 计算几何
- 判断两条线段是否相交(三种算法)
- 【算法导论】33.2:判断任意两条线段是否相交
- zju1648 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交_模版
- 判断两条线段是否相交
- 两条线段知道端点line1(x1,y1)(x2,y2)line2(x3,y3)(x4,y4),判断两条线段是否相交,交点坐标(x,y)
- 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交(三种算法)
- c# 判断两条线段是否相交(判断地图多边形是否相交)
- 判断两条线段是否相交(三种算法)