zoukankan      html  css  js  c++  java
  • 78-直线相交-计算几何

    http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1016

                      德莱联盟

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:1
     
    描述

    欢迎来到德莱联盟。。。。

    德莱文。。。

    德莱文在逃跑,卡兹克在追。。。。

    我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和 终点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是直线。

     
    输入
    几组数据,一个整数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
    样例输出
    Interseetion
    Not Interseetion
    来源
    原创
    上传者
    ACM_王亚龙

    #include <iostream>
    using namespace std;
    typedef struct node{
    	double x,y;
    }node;
    
    double chachen(node a, node b, node c){   	  //叉乘,ab X ac  
    	double x1, x2, y1, y2;
    	x1 = b.x - a.x;
    	y1 = b.y - a.y;
    	x2 = c.x - a.x;
    	y2 = c.y - a.y;
    	return x1 * y2 - x2 * y1;
    }
    
    int isjiao(node a, node b, node c, node d){  //线段ab,cd的排斥实验,看是否可能相交 
    	if(max(a.x, b.x) < min(c.x, d.x) || max(a.y, b.y) < min(c.y, d.y) ||
    	   min(a.x, b.x) > max(c.x, d.x) || min(a.y, b.y) > max(c.y, d.y)) 
    		return 0;
    	return 1;
    }
    
    int main(){
    	int t;
    	cin >> t;
    	while(t--){
    		node a[4];
    		for(int i = 0; i < 4; i++){
    			cin >> a[i].x >> a[i].y;
    		}	
    		if(isjiao(a[0], a[1], a[2], a[3]) && chachen(a[0], a[1], a[2]) * chachen(a[0], a[1], a[3]) <= 0
    			&& chachen(a[2], a[3], a[1]) * chachen(a[2], a[3], a[0]) <= 0
    		){
    			cout << "Interseetion" << endl;
    		}
    		else{
    			cout << "Not Interseetion" << endl;
    		}
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    Memcached 分布式缓存系统部署与调试
    nginx_笔记分享_php-fpm详解
    nginx_笔记分享_配置篇
    linux定时任务crond那些事!
    命令passwd报错因inode节点处理记录
    linux下定时任务
    linux内核堆栈
    c语言之单链表的创建及排序
    c语言常见的几种排序方法总结
    Tiny4412之外部中断
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9525302.html
Copyright © 2011-2022 走看看