/**
注意: 千万得小心。。就因为一个分号,调了一个晚上。。。
**/
#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. WebService-06-CXF与Spring集成

    前言 自3月份到一家快递公司之后,就极少有时间来写博客了,进去的第一个周末就加班.做公司的开放平台,协助一个小伙伴写WebService接口,用的就是CXF.正好这个东西曾经使用过.如今快7月了,曾经 ...

  2. 统计分析SQL Server Profiler 跟踪的SQL

    --跟踪文件读入到表中分析 SELECT * INTO ZGSJY FROM fn_trace_gettable('E:\wxxcdbprofiler.trc', default); --某时间内,最 ...

  3. android上下文

    在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder( ...

  4. CSS用法简介

    CSS(Cascading Style Sheets层叠样式表)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. 1.基本使用语法   ...

  5. vs 2005 在IE下断点不起作用

    vs2005 加断点调试,ie下不起作用. 1. 点击[开始]->[运行] 命令:regedit. 2. 定位到HKEY_LOCALMACHINE -> SOFTWARE -> Mi ...

  6. FTP创建与操作

    1,FTP服务创建于配置http://jingyan.baidu.com/article/0a52e3f4230067bf63ed7268.html, 2,FTP操作类 using System; u ...

  7. java_httpservice

    http://blog.csdn.net/maosijunzi/article/details/41045181

  8. ubuntu中查找软件的安装位置

    ubuntu中的软件可通过图形界面的软件中心安装,也可以通过命令行apt-get install安装.但是安装后的软件在哪个位置呢?这点跟windows环境下安装软件的路径选择不一样.ubuntu中可 ...

  9. JAVA泛型接口

    事例代码: package com.xt.thins_15_3; import java.util.Iterator; /** * 泛型接口 * * @author xue * * @param &l ...

  10. JSP与Servlet的中文乱码处理

    注:百度来的,改了改... jsp页面的的头要设置好 <%@ page language="java" contentType="text/html; charse ...