德莱联盟(判断线段是否相交)
德莱联盟
- 描述
-
欢迎来到德莱联盟。。。。
德莱文。。。
德莱文在逃跑,卡兹克在追。。。。
我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和中点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是直线。
- 输入
-
几组数据,一个整数T表示T组数据
每组数据 8个实数,分别表示德莱文的起点和终点坐标,以及卡兹克的起点和终点坐标 - 输出
- 如果可能 输出 Interseetion,否则输出 Not Interseetion
- 样例输入
-
2-19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01-8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37
- 样例输出
-
InterseetionNot Interseetion
-
参考了这个博客,写的很好:http://www.cnblogs.com/zhangchaoyang/articles/2668562.html
-
#include<iostream> using namespace std; int px(double x1,double y1,double x2,double y2 ){ //判断p0p1 在 p0p2 的哪一侧 double chacheng = x1*y2-x2*y1;if(chacheng > 0)return 1; else if(chacheng == 0)return 0;else if(chacheng < 0)return -1; } // 在线段上还是在其延长线上 bool dy(double x,double y,double x1,double y1,double x2 ,double y2) {if(x1>x2) swap(x1,x2);if(y1>y2) swap(y1,y2);if(x>=x1 && x <= x2 && y >= y1 && y <= y2) return true;else return false; } int main() {int T;cin>>T;double x1,x2,x3,x4,y1,y2,y3,y4;while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4){int s1,s2,s3,s4;s1 = px(x4-x1,y4-y1,x2-x1,y2-y1);s2 = px(x3-x1,y3-y1,x2-x1,y2-y1);s3 = px(x1-x3,y1-y3,x4-x3,y4-y3);s4 = px(x2-x3,y2-y3,x4-x3,y4-y3);int a,b;//可能有一个点在线段上if(s1==0 || s2==0 || s3==0 ||s4 == 0){if(s1 ==0){if(dy(x4,y4,x1,y1,x2,y2)) cout<<"Interseetion"<<endl;else cout<<"Not Interseetion"<<endl;}else if(s2 == 0){if(dy(x3,y3,x1,y1,x2,y2)) cout<<"Interseetion"<<endl;else cout<<"Not Interseetion"<<endl;}else if(s3 == 0){if(dy(x1,y1,x3,y3,x4,y4)) cout<<"Interseetion"<<endl;else cout<<"Not Interseetion"<<endl;}else if(s4 == 0){if(dy(x2,y2,x3,y3,x4,y4)) cout<<"Interseetion"<<endl;else cout<<"Not Interseetion"<<endl; }}else {if(s1 == 1 && s2 == -1 || s2 == 1 && s1 == -1) a = 1; else a = 0; if(s3 == 1 && s4 == -1 || s4 == 1 && s3 == -1) b = 1;else b = 0;if(a&&b)cout<<"Interseetion"<<endl;else cout<<"Not Interseetion"<<endl;}}return 0; }
德莱联盟(判断线段是否相交)相关推荐
- 德莱联盟[判断线段相交]
德莱联盟 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也 ...
- 德莱联盟 计算几何 线段相交
难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和 终点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证 ...
- NYOJ 1016 德莱联盟(计算几何 线段相交判定)
判断两条线段是否相交. 在判断两条线段是否相交时,我们常用快速排斥实验跟跨立实验这两种方法,快速排斥实验能很快的排除掉线段不相交的情况,但并没法成为线段相交的充要条件,在快速排斥实验之后接上跨立实验就 ...
- NYOJ1016(德莱联盟)(判断线段相交)
德莱联盟 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也 ...
- 德莱联盟(判断两个线段是否相交)
德莱联盟 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也 ...
- nyoj1016德莱联盟【判断两线段是否相交】
德莱联盟 时间限制:1000ms | 内存限制:65535KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道 ...
- 德莱联盟(判断两点是否相交 nyist)
描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和中点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是 ...
- NYOJ1016:德莱联盟(判线段相交)
德莱联盟 时间限制:1000ms | 内存限制:65535KB 难度:1 描述 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们知道德莱文的起点和终点坐标,我们也知道 ...
- XYNUOJ-2139 德莱联盟
2139: 德莱联盟 时间限制: 1 Sec 内存限制: 64 MB 提交: 7 解决: 3 您该题的状态:已完成 [提交][状态][讨论版] 题目描述 欢迎来到德莱联盟.... 德莱文... 德 ...
最新文章
- oracle update批量修改sql语句编写
- Python学习笔记:虚拟环境和包
- java oom分析_作为测试你应该知道的JAVA OOM及定位分析
- go mysql存储过程_Golang 调用MySQL存储过程
- mpvue 微信小程序 Image 图片实现宽度100%,高度自适应
- html文件打开系统错误,win7打开word提示“无法打开文件Normal因为内容有错误”的两种解决方法...
- maven+springboot整合mybatis(十二)
- linux7离线安装docker19,centos7离线安装docker
- php://input 如何用?
- 管理员回复留言php,最新WordPress评论邮件通知管理员及回复评论者(详细教程)...
- mongodb创建超级管理员_MongoDB 用户、库、表的管理
- Linux下的磁盘分区简介
- 对于谷歌搜索的一些基本语法整理
- 鲁大师7月新机性能/流畅榜:性能跑分突破123万!
- 深圳学区房还值得购买吗
- 解决paramiko.ssh_exception.SSHException: Error reading SSH protocol banner问题
- CentOS通过Samba访问NAS共享目录
- golang代码实现chmod 777效果
- C# Windows桌面应用 ---- 实例:文件读写
- python123测验5随机密码生成_基于社会工程学的弱口令密码字典生成工具
热门文章
- 外挂三部曲(三) —— Android 图片相似度对比
- 电脑唯独搜不到自己家wifi,怎么办?
- android exoplayer 直播流,使用Exo-Media Player播放RTMP直播
- AudioToolbox使用方法总结
- win7修复计算机 报错6,Win7系统出现APPCRASH错误怎么解决
- visual studio 2015 启动停止工作, 问题事件名称:APPCRASH 应用程序名:devenv.exe 故障模块名称:
- 推荐8款免费企业邮箱,让你的工作便捷起来
- composer入门教程
- 程序员做外包,真的没地位没出路吗?
- 外贸Newer必备外贸流程