/**
注意: 千万得小心。。就因为一个分号,调了一个晚上。。。
**/
#include <iostream>
#include <algorithm>
using namespace std;
struct point {
int x,y;
}; struct line{
point a;
point b;
};
line l,lt;//l 直线 lt 矩形的边
int x1,x2,y1,y2; int mmax(double a,double b){
return a>b?a:b;
} int mmin(double a,double b){
return a<b?a:b;
} double dir(point o,point p,point q){
return (p.x-o.x)*(q.y-o.y)-(p.y-o.y)*(q.x-o.x);
} int on_border(point o,point p,point q){
if(mmin(o.x,p.x)<=q.x&&q.x<=mmax(o.x,p.x)&&mmin(o.y,p.y)<=q.y&&q.y<=mmax(o.y,p.y))
return ;
else
return ;
} int cross(line v,line t){
double a,b,c,d;
a = dir(t.a,t.b,v.a);
b = dir(t.a,t.b,v.b);
c = dir(v.a,v.b,t.a);
d = dir(v.a,v.b,t.b);
if(a*b<&&c*d<)
return ;
if(!a&&on_border(t.a,t.b,v.a))
return ;
if(!b&&on_border(t.a,t.b,v.b))
return ;
if(!c&&on_border(v.a,v.b,t.a))
return ;
if(!d&&on_border(v.a,v.b,t.b))
return ;
return ;
} int main()
{
int n;
cin>>n;
while(n--){
cin>>l.a.x>>l.a.y>>l.b.x>>l.b.y;
cin>>x1>>y1>>x2>>y2;
if(x1>x2)
swap(x1,x2);
if(y1<y2)
swap(y1,y2);
int flag =;
lt.a.x = x1;
lt.a.y=y1;
lt.b.x = x2;
lt.b.y =y1;
if(cross(l,lt))
flag =;
else{
lt.a.x=x2;
lt.a.y=y1;
lt.b.x=x2;
lt.b.y=y2;
if(cross(l,lt))
flag =;
else{
lt.a.x=x1;
lt.a.y=y2;
lt.b.x=x2;
lt.b.y=y2;
if(cross(l,lt))
flag =;
else{
lt.a.x = x1;
lt.a.y=y1;
lt.b.x=x1;
lt.b.y=y2;
if(cross(l,lt))
flag =;
}
}
}
if(flag)
cout<<"T"<<endl;
else{
if((x1<mmin(l.a.x,l.b.x))&&(mmax(l.a.x,l.b.x)<x2)&&(y2<mmin(l.a.y,l.b.y))&&(mmax(l.a.y,l.b.y)<y1))
cout<<"T"<<endl;
else
cout<<"F"<<endl;
}
}
return ;
}

poj 1410 计算几何的更多相关文章

  1. POJ 1410 Intersection (计算几何)

    题目链接:POJ 1410 Description You are to write a program that has to decide whether a given line segment ...

  2. 线段和矩形相交 POJ 1410

    // 线段和矩形相交 POJ 1410 // #include <bits/stdc++.h> #include <iostream> #include <cstdio& ...

  3. POJ 1410 Intersection(计算几何)

    题目大意:题目意思很简单,就是说有一个矩阵是实心的,给出一条线段,问线段和矩阵是否相交解题思路:用到了线段与线段是否交叉,然后再判断线段是否在矩阵里面,这里要注意的是,他给出的矩阵的坐标明显不是左上和 ...

  4. poj 1410 线段相交判断

    http://poj.org/problem?id=1410 Intersection Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  5. [POJ 1410] Intersection(线段与矩形交)

    题目链接:http://poj.org/problem?id=1410 Intersection Time Limit: 1000MS   Memory Limit: 10000K Total Sub ...

  6. POJ 1556 计算几何+最短路

    代码1: #include<iostream> #include<stdio.h> #include<string> #include<string.h> ...

  7. POJ 2954-Triangle(计算几何+皮克定理)

    职务地址:POJ 2954 意甲冠军:三个顶点的三角形,给出,内部需求格点数. 思考:就像POJ 1265. #include <stdio.h> #include <math.h& ...

  8. POJ 1410 Intersection --几何,线段相交

    题意: 给一条线段,和一个矩形,问线段是否与矩形相交或在矩形内. 解法: 判断是否在矩形内,如果不在,判断与四条边是否相交即可.这题让我发现自己的线段相交函数有错误的地方,原来我写的线段相交函数就是单 ...

  9. 简单几何(线段相交) POJ 1410 Intersection

    题目传送门 题意:一个矩形和一条线段,问是否有相交 分析:考虑各种情况.坑点:给出的矩形的两个端点是无序的,还有线段完全在矩形内也算相交 /****************************** ...

随机推荐

  1. iOS_词典阵列 按key分组和排序

    // // main.m // SortGroup // // Created by beyond on 14-10-26. // Copyright (c) 2014年 beyond.com All ...

  2. PPT插件 用js制作PPT

    https://github.com/bartaz/impress.js/ deck.js

  3. COM组件简介

    面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展. 按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台机器上, ...

  4. 全面修复IE,注册IE所有dll

    全面修复IE,注册IE所有dll 复制,粘贴到文本文档里,保存成.bat文件,双击运行. rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\ ...

  5. oracle基础代码使用

    create or replace procedure pr_test1 is v_case ) :;--定义变量 begin -- /*判断语句 then dbms_output.put_line( ...

  6. 整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用

    整理部分JS 控件  WEB前端常用的做成Jsp项目,方便今后直接用 最近又没时间了,等用时间了,再加入更多的, 源码下载: http://download.csdn.net/detail/liang ...

  7. iScroll 4,把禁掉的:active样式还给我~

    iScroll这个移动端的滚动神器大家都非常熟悉了,直到现在仍是实现移动端Web滚动的首选方案之一... 当我接触移动端Web时iScroll已经有两个版本了,iScroll 4和iScroll 5, ...

  8. Mad Lib程序

    单选框  复选框  按钮  标签  文本框的应用 #coding=utf-8 __author__ = 'minmin' from Tkinter import * class Application ...

  9. MySQL float 与decimal 各中的区别。

    想一个问题: 1/3+1/3+1/3=1.0 0.3+0.3+0.3 =0.9 想一想在小数的世界里要什么表示1/3呢!它的办法就是取一个与1/3十分接近的小数来代替:如上面例子中的0.3来代替1/3 ...

  10. android基于XMPP的消息推送机制

    关于服务器端向Android客户端的推送,主要有三种方式:1.客户端定时去服务端取或者保持一个长Socket,从本质讲这个不叫推送,这是去服务端拽数据.但是实现简单,主要缺点:耗电等2.Google的 ...