码迷,mamicode.com
首页 > 其他好文 > 详细

78-直线相交-计算几何

时间:2018-08-23 19:20:07      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:not   alt   source   ble   相交   几何   splay   editable   out   

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;
} 

  

78-直线相交-计算几何

标签:not   alt   source   ble   相交   几何   splay   editable   out   

原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9525302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!