Intersecting Lines POJ 1269
题目大意:给出两条直线,每个直线上的两点,求这两条直线的位置关系:共线,平行,或相交,相交输出交点。
题目思路:主要在于求交点
F0(X)=a0x+b0y+c0==0;
F1(X)=a1x+b1y+c1==0;
设点(x0,y0)(x1,y1)过直线
解方程:a=y1-y0,b=x0-x1,c=x1y0-x0y1;
联立方程:
X=(b0c1-b1c0)/d;
Y=(a0c1-a1c0)/d;
d=a0b1-a1b0;
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<stdio.h>
#include<stdlib.h>
#include<queue>
#include<math.h>
#include<map>
#define INF 0x3f3f3f3f
#define MAX 100005
#define Temp 1000000000
#define MOD 1000000007 using namespace std; int n; int check(int x1,int y1,int x2,int y2,int x3,int y3)//叉积
{
return (x3-x2)*(y3-y1)-(x3-x1)*(y3-y2);
} void Point(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4)
{
int b0=x2-x1;
int b1=x4-x3;
int a0=y1-y2;
int a1=y3-y4;
int c0=x1*y2-x2*y1;
int c1=x3*y4-x4*y3;
int d=a0*b1-a1*b0;
double X=(b0*c1-b1*c0*1.0)/d;
double Y=(a1*c0-a0*c1*1.0)/d;
printf("POINT %.2f %.2f\n",X,Y);
} void solve(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4)
{
if(check(x1,y1,x2,y2,x3,y3)== && check(x1,y1,x2,y2,x4,y4)==)
printf("LINE\n");//共线
else if((y2-y1)*(x3-x4) == (y3-y4)*(x2-x1))
printf("NONE\n");//平行
else
Point(x1,y1,x2,y2,x3,y3,x4,y4);
} int main()
{
int n,x1,y1,x2,y2,x3,y3,x4,y4;
scanf("%d",&n);
printf("INTERSECTING LINES OUTPUT\n");
for(int i=; i<n; i++)
{
scanf("%d%d%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
solve(x1,y1,x2,y2,x3,y3,x4,y4);
}
printf("END OF OUTPUT\n");
return ;
Intersecting Lines POJ 1269的更多相关文章
- Intersecting Lines - POJ 1269(判断平面上两条直线的关系)
分析:有三种关系,共线,平行,还有相交,共线和平行都可以使用叉积来进行判断(其实和斜率一样),相交需要解方程....在纸上比划比划就出来了.... 代码如下: ================== ...
- 判断线段之间的关系(D - Intersecting Lines POJ - 1269 )
题目链接:https://vjudge.net/contest/276358#problem/D 题目大意:每一次给你两条直线,然后问你这两条直线的关系(平行,共线,相交(输出交点)). 具体思路:先 ...
- POJ 1269 (直线求交)
Problem Intersecting Lines (POJ 1269) 题目大意 给定两条直线,问两条直线是否重合,是否平行,或求出交点. 解题分析 主要用叉积做,可以避免斜率被0除的情况. 求交 ...
- 【POJ】1269 Intersecting Lines(计算几何基础)
http://poj.org/problem?id=1269 我会说这种水题我手推公式+码代码用了1.5h? 还好新的一年里1A了---- #include <cstdio> #inclu ...
- poj 1269 Intersecting Lines
题目链接:http://poj.org/problem?id=1269 题目大意:给出四个点的坐标x1,y1,x2,y2,x3,y3,x4,y4,前两个形成一条直线,后两个坐标形成一条直线.然后问你是 ...
- 判断两条直线的位置关系 POJ 1269 Intersecting Lines
两条直线可能有三种关系:1.共线 2.平行(不包括共线) 3.相交. 那给定两条直线怎么判断他们的位置关系呢.还是用到向量的叉积 例题:POJ 1269 题意:这道题是给定四个点p1, ...
- ●POJ 1269 Intersecting Lines
题链: http://poj.org/problem?id=1269 题解: 计算几何,直线交点 模板题,试了一下直线的向量参数方程求交点的方法. (方法详见<算法竞赛入门经典——训练指南> ...
- POJ 1269 - Intersecting Lines - [平面几何模板题]
题目链接:http://poj.org/problem?id=1269 Time Limit: 1000MS Memory Limit: 10000K Description We all know ...
- poj 1269 Intersecting Lines——叉积求直线交点坐标
题目:http://poj.org/problem?id=1269 相关知识: 叉积求面积:https://www.cnblogs.com/xiexinxinlove/p/3708147.html什么 ...
随机推荐
- wamp,phpserver,xampp环境冲突
这几天在使用laravel5.2时 执行:php artisan migrate [PDOException] could not find driver 分析可能是以下情况造成 1 php.ini配 ...
- infix expression 计算完全版
#include<iostream> #include<stack> #include<string> using namespace std; char comp ...
- java.lang.SecurityException:Invalid signature file digest forManifest main attributes
今天在公司使用ant命令来从服务器中提取一个类的时候发现一个问题,每当我执行ant命令的时候就报如下异常: 想来想去猜测是Enovia提供的包没有做数字签名,但是如何解决这个问题呢?想不到解决方案只好 ...
- Spring contextConfigLocation默认加载文件的位置
在使用Spring框架的时候,如果我们使用的是XML文件配置Bean的方式的话,我们往往会在web.xml里面配置如下内容: <context-param> <param-name& ...
- 正规消息发送器-- ESFramework 4.0 进阶(06)
在ESFramework 4.0 进阶(04)-- 驱动力:通信引擎(下)一文末尾我们已经将通信引擎以及整个消息骨架流程组装起来了,只要通信引擎一接收到消息,框架就会按照规定的流程进行运转.到这里,自 ...
- poj 3278 Catch That Cow bfs
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- hdu 1210 Eddy's 洗牌问题
Problem Description Eddy是个ACMer,他不仅喜欢做ACM题,而且对于纸牌也有一定的研究,他在无聊时研究发现,如果他有2N张牌,编号为1,2,3..n,n+1,..2n.这也是 ...
- freemarker之list和map
第一次使用freemarker很不习惯,之前都是用velocity的. @RequestMapping("/free.htm") public ModelAndView hello ...
- Linux下gcc编译生成动态链接库*.so文件并调用它【转载】
动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...
- Nginx访问限速配置方法详解
开发测试阶段在本地限速模拟公网的环境,方便调试.投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求. 配置简单,只需3行,打开"nginx根目录/conf/n ...