直接用kuangbin的板子,能判不规范,规范和不交

另外线段在矩形内也可以,判断方式是比较线段的端点和矩形四个角

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>using namespace std;
const double eps = 1e-18;
int sgn(double x){if (fabs(x)<eps) return 0; return (x>0)?1:-1;}
struct Point{double x,y;Point(int _x = 0,int _y = 0):x(_x),y(_y){}bool operator == (Point b)const{return sgn(x - b.x) == 0 && sgn(y - b.y) == 0;} Point operator - (const Point &b)const{return Point(x - b.x,y - b.y);}double operator ^(const Point &b)const{return x*b.y - y*b.x;}double operator *(const Point &b)const{return x*b.x + y*b.y;}Point operator +(const Point &b)const{return Point(x+b.x,y+b.y);}Point operator *(const double &k)const{return Point(x*k,y*k);}Point operator /(const double &k)const{return Point(x/k,y/k);}
};struct Line{Point s,e;int segcrossseg(Line v){int d1 = sgn((e - s)^(v.s - s));int d2 = sgn((e - s)^(v.e - s));int d3 = sgn((v.e - v.s)^(s - v.s));int d4 = sgn((v.e - v.s)^(e - v.s));if( (d1^d2)== - 2 && (d3^d4)== - 2 )return 2;return (d1==0 && sgn((v.s - s)*(v.s - e))<=0) ||(d2==0 && sgn((v.e - s)*(v.e - e))<=0) ||(d3==0 && sgn((s - v.s)*(s - v.e))<=0) ||(d4==0 && sgn((e - v.s)*(e - v.e))<=0);}
};int n;
Line a,b,c,d,line;
double x1,Y1,x2,y2,x3,y3,x4,y4;
int main(){scanf("%d",&n);while(n--){scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&Y1,&x2,&y2,&x3,&y3,&x4,&y4);line.s = Point{x1,Y1}; line.e = Point{x2,y2};a.s = Point{x3,y3}; a.e = Point{x3,y4};b.s = Point{x3,y4}; b.e = Point{x4,y4};c.s = Point{x4,y4}; c.e = Point{x4,y3};d.s = Point{x4,y3}; d.e = Point{x3,y3};if (line.segcrossseg(a) || line.segcrossseg(b)|| line.segcrossseg(c) || line.segcrossseg(d)|| (sgn(fabs(x1-x3)+fabs(x1-x4)-fabs(x3-x4))==0 && sgn(fabs(Y1-y3)+fabs(Y1-y4)-fabs(y3-y4))==0)) puts("T");else puts("F");}
}

转载于:https://www.cnblogs.com/zsben991126/p/10924709.html

计算几何——poj1410,线段不规范交相关推荐

  1. 计算几何 - XOJ 1171 线段求交

    问题 Description 线段求交即给定一组线段求出这些线段的相交情况,它是计算几何的基础问题之一,有着广泛的应用. Input第一行为一个正整数n表示线段的个数(n<=10000)第二行到 ...

  2. 计算几何2:扫描线线段求交算法

    相比于上一篇中介绍的求凸包算法,本次介绍的扫描线线段求交算法的实现难度明显更高,实际上最终本人也未能完美的实现该算法,下面给出的版本经测试是存在一些问题的. 首先介绍一下扫描线算法的基本原理,具体内容 ...

  3. 线段求交算法对比研究

    线段求交算法对比研究 -----by wangsh 一.介绍 线段求交算法在计算几何,地理信息系统算法等相关应用中占有重要的位置,本文简单给出算法说明. Bentley & Ottmann于1 ...

  4. C++line segment intersection线段求交(交点)(附完整源码)

    C++line segment intersection线段求交的实现 C++line segment intersection线段求交实现的完整源码(定义,实现,main函数测试) C++line ...

  5. java判断线段是否相交函数_计算几何-判断线段是否相交

    计算几何-判断线段相交 判断两线段是否相交: 快速排斥 跨立实验(这两个词也是我看博客的时候看到的,觉得挺高大上的就拿过来用了,哈哈哈) 1. 快速排斥:就是初步的判断一下,两条线段是不是相交,以两条 ...

  6. (线段判交的一些注意。。。)nyoj 1016-德莱联盟

    1016-德莱联盟 内存限制:64MB 时间限制:1000ms 特判: No 通过数:9 提交数:9 难度:1 题目描述: 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我 ...

  7. N条线段求交的扫描线算法

    转载自:http://johnhany.net/2013/11/sweep-algorithm-for-segments-intersection/ N条线段求交的扫描线算法 在对图进行计算时,很常用 ...

  8. 线段求交应用之Liang-barsky裁剪算法

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 线段剪裁作用 所谓线段剪裁,就是在二维平面上有一堆线段,和一个矩形窗口.求出现在窗口里线段部分是哪些. 上图中绿色为线段,红色为 ...

  9. AK F.*ing leetcode 流浪计划之线段求交

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 本期话题:2条线段求交点 我有两种线段求交方法. 这两种方法在图形中窗口剪裁中应用. 分别是 Cohen-Suther land ...

  10. 计算几何--简单多边形与圆面积交

    求解二维空间内一个简单多边形和一个长度为R的圆公共面积. 因为任意简单多边形都可以划分成若干三角形,我们可以把这个简单多边形划分成三角形后,求三角形与圆的面积交,然后在把所有三角形的解合并. 由于可能 ...

最新文章

  1. Linux 防火墙命令的操作命令CentOS
  2. insight切换窗口 source_Source Insight函数调用关系显示设置(示例代码)
  3. SAP在大中华区推出SAP数字化转型教育网络平台
  4. Spark SQL之DataSet
  5. 《C语言及程序设计》实践项目——三种循环语句
  6. MemSQL 1.8 发布,号称最快的关系数据库
  7. Linux 修复严重的内核代码执行漏洞
  8. as4配置本地gradle_Gradle和Maven的区别
  9. ubuntu1804+CUDA10+cudnn7.4.2+TensorFlow2+Pytorch1.3 9700K+双路RTX 2080TI
  10. 2020年信工所考研经验分享
  11. maven atuo import
  12. 计算机中cpu是指什么意思,CPU是什么?CPU又是什么意思?
  13. 多边形偏移算法c语言,多边形的偏移填充算法
  14. html中账号绑定怎么做,绑定账号.html
  15. html css 模仿小米官网搜索框
  16. 01excel空白一键填充
  17. h3cr4900g3安装系统_H3C服务器安装Windows操作系统
  18. [Linux]termios
  19. 将canvas转化为图片
  20. 接口测试工具soapUI(一)

热门文章

  1. css盒子模型实验报告总结_前端知识点总结——盒子模型
  2. python 实现简单画板_Python图像处理之简单画板实现方法示例
  3. NYOJ 42一笔画问题||欧拉图
  4. php 的sentmail支持ssl吗_php 的swoole 和websocket 连接wss
  5. python while快速写法_从零开始学Python,带你手把手实战之一
  6. 翻译: 2.6 概率论 深入神经网络 pytorch
  7. 阿里云云计算 30 AS的配置
  8. 翻译:谁将在AI中赚钱?by Simon Greenman
  9. 极客大学架构师训练营 大数据架构、Spark、Storm、Spark Streaming、Flink、HiBench、Impala 第25课 听课总结
  10. 极客大学架构师训练营 组件设计原则 安全架构 防火墙ModSecurity 第21课 听课总结