博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1264 线段相交——计算几何
阅读量:6848 次
发布时间:2019-06-26

本文共 889 字,大约阅读时间需要 2 分钟。

题目链接:

检查点的位置就行了,具体见注释。

1 /*  (a-c)×(d-c)*(d-c)×(b-c)>=0检查c点在ab之间 2   &&(c-a)×(b-a)*(b-a)×(d-a)>= 0检查a点在cd之间 3   就可以判断ab,cd相交(可以画个图看看) 4   (x1,y1)×(x2,y2) = x1y2 - x2y1 (向量积)*/ 5 #include 
6 #include
7 using namespace std; 8 struct point{ double x,y; };; 9 10 bool cross(point a,point b,point c,point d){
//检查c点在ab之间11 double p=(a.x-c.x)*(d.y-c.y)-(d.x-c.x)*(a.y-c.y);//CA×CD12 double q=(d.x-c.x)*(b.y-c.y)-(b.x-c.x)*(d.y-c.y);//CD×CB13 if(p*q<0) return false;14 else return true;15 }16 int main(){17 18 int t; scanf("%d",&t);19 while(t--){20 point a,b,c,d;21 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);22 if(cross(a,b,c,d)&&cross(c,d,a,b))23 puts("Yes");24 else25 puts("No");26 }27 }

 

转载于:https://www.cnblogs.com/noobimp/p/10341547.html

你可能感兴趣的文章
为基恩士 TM-3000 激光测量仪定制的测量管理系统
查看>>
java反射机制+工厂模式+配置文件----->在谈到spring配置文件
查看>>
linux 操作系统进程系列
查看>>
持续化集成工具jenkins环境搭建及配置
查看>>
CDN架构以及原理分析
查看>>
2016年3月7日作业
查看>>
HDFS DataBlockScanner
查看>>
MVC模式基本理解
查看>>
开源 java CMS - FreeCMS2.8会员登录
查看>>
ps学习笔记 11,12 路径,色彩调整
查看>>
MDaemonV15 版本新特性介绍
查看>>
【Guava】基于guava的重试组件Guava-Retryer
查看>>
第三阶段计划
查看>>
【BZOJ2428】[HAOI2006]均分数据
查看>>
搭建个人/企业私有存储云盘-kodexplorer
查看>>
Spring常用注解
查看>>
哥德巴赫猜想算法c#实现方法
查看>>
MongoDB---管理简析
查看>>
我的友情链接
查看>>
solr5.2.1-----环境搭建
查看>>