题目链接:51nod 1264 线段相交

如果两条线段相交,则需满足一条线段的一个端点在另一条线段上,或者 两条线段都分别跨越另一条线段延伸的直线上。(如果点p1位于直线p3p4的一边,而点p2位于该直线的另一边,则称p1p2跨越了这条直线p3p4。)

可以用叉乘来判断p3p1、p3p2是否在p3p4的不同方向(顺、逆时针)(线段p1p2跨越了直线p3p4)以及p1p4、p1p3是否在p1p2的不同方向(线段p3p4跨越了直线p1p2)来判断是否相交。

关于叉乘方向的判断,来,伸出你的右手。。。

 #include<cstdio>
using namespace std;
struct point{
double x, y;
};
bool f(point a, point b, point c, point d){
double d1 = (a.x-c.x)*(d.y-c.y)-(a.y-c.y)*(d.x-c.x);
double d2 = (b.x-c.x)*(d.y-c.y)-(b.y-c.y)*(d.x-c.x);
if(d1*d2<=) return ;
return ;
}
bool check(point a, point b, point c, point d){
if(!f(a,b,c,d)) return ;
if(!f(c,d,a,b)) return ;
return ;
}
int main(){
int t;
point a, b, c, d;
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(check(a,b,c,d))
puts("Yes");
else puts("No");
}
return ;
}

51nod 1264 线段相交(几何)的更多相关文章

  1. 51Nod 1264 线段相交(计算几何)

    1264 线段相交  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相 ...

  2. 判断线段相交 -- 51nod 1264 线段相交

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1264 三角形的有向面积:a.x*b.y+b.x*c.y+c.x*a.y ...

  3. 51nod 1264 线段相交——计算几何

    题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1264 检查点的位置就行了,具体见注释. /* (a-c)×(d-c)*(d ...

  4. 51nod 1264 线段相交

    题目:传送门. 题意:给两条线段,有一个公共点或有部分重合认为相交,问他们是否相交. 题解:这属于非规范相交的情况,模板题. #include <iostream> #include &l ...

  5. (图论)51NOD 1264 线段相交

    给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出"No".   输入 第1行:一个 ...

  6. 51nod1264线段相交

    1264 线段相交 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交, ...

  7. (计算几何 线段判交) 51nod1264 线段相交

    1264 线段相交 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出"No".   ...

  8. 51nod--1264 线段相交 (计算几何基础, 二维)

    题目: 1264 线段相交 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为 ...

  9. 51Nod 1264:线段相交(计算几何)

    51Nod 1264:线段相交 Decision 给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出&q ...

随机推荐

  1. Leetcode: Assign Cookies

    Assume you are an awesome parent and want to give your children some cookies. But, you should give e ...

  2. 提高网站性能的 5 个 Grunt任务//////////////////z

    提高网站性能的 5 个 Grunt任务 时间 2015-03-06 09:13:02  极客头条 原文  http://hugnew.com/wordpress/提高网站性能的-5-个-grunt任务 ...

  3. 【final】站立会议---11.27

    名称:nice! 组长:李权 成员:于淼  刘芳芳韩媛媛 宫丽君 时间:11月27日 13:00 项目内容:约跑app(约吧) 地点:传媒西楼220室 内容: 新任务的分配 1.李权分配任务 2.韩媛 ...

  4. Javascript图片无缝滚动

    http://www.cnblogs.com/shouce/p/5068787.html

  5. Android应用权限管理总结

      访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permi ...

  6. 使用boost的asio,io_service无法初始化

    今天用vs编一个用asio写的程序,发现在tcp::acceptor::open()失败,查了好久,发现是acceptor绑定的io_service没有正确的初始化,又查了半天,发现是需要加一个预编译 ...

  7. 人工智能系统Google开源的TensorFlow官方文档中文版

    人工智能系统Google开源的TensorFlow官方文档中文版 2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源,机器学习作为人工智能的一种类型,可以让软件根据大量的 ...

  8. SVN服务端启动解决方案(2013-12-10 记)

     解决每一次开机都得用DOS启动SVN服务,而DOS窗口又无法关闭的情况 1.安装Setup-Subversion-1.8.5.msi搭建好SVN服务端(下载地址:http://subversion. ...

  9. web页面状态

    200 :表示请求成功,服务器已处理 201 :表示服务器端请求被创建, 202 :表示服务器端请求已经被接收,但未处理完成 400 :表示错误的请求 404:表示请求的资源未找到. 405:表示没有 ...

  10. maven nexus

    部署nexus步骤: 1.下载解压安装包到指定目录 2.设置环境变量(当然还有JAVA,jdk) 3.在配置文件(G:\nexus\nexus-2.3.1-01-bundle\nexus-2.3.1- ...