题目链接:http://poj.org/problem?id=1269

题意:给你两条直线上的任意不同的两点,然后求两条直线的位置关系,如果相交于一点输出该点坐标;

#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define met(a, b) memset(a, b, sizeof(a))
#define mod 1000000007
typedef long long LL;
//////////////////////////////////////////////////////////////
const int INF = 0x3f3f3f3f;
const int N = ;
const double eps = 1e-; int Sign(double x)
{
if(fabs(x) < eps) return ;
if(x<) return -;
return ;
} struct point
{
double x, y;
point(double x_=, double y_=):x(x_),y(y_){}
point operator -(const point &b)const
{
return point(x-b.x, y-b.y);
}
double operator ^(const point &b)const
{
return (x*b.y - b.x*y);
}
}; struct line
{
point p1, p2;
line(){}
line(point p1_, point p2_):p1(p1_), p2(p2_){}
};
///找到直线L1与L2的交点p0,返回值不同,含义不同;
int FindLinePoint(line L1, line L2, point &p0)
{
double k = ((L1.p1-L1.p2) ^ (L2.p1-L2.p2));
if(Sign(k) == )
{
double t = ((L1.p1-L1.p2)^(L1.p1-L2.p1));
if(Sign(t) == ) return ;///共线;
return ;///平行
}
p0 = L1.p1;
double t = ((L1.p1-L2.p1)^(L2.p1-L2.p2))/((L1.p1-L1.p2)^(L2.p1-L2.p2));
p0.x += (L1.p2.x - L1.p1.x)*t;
p0.y += (L1.p2.y - L1.p1.y)*t;
return ;///相交于一点p0;
} int main()
{
printf("INTERSECTING LINES OUTPUT\n");
int T;
scanf("%d", &T);
while(T--)
{
point p0;
double x1, y1, x2, y2, x3, y3, x4, y4;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &x1,&y1, &x2,&y2, &x3,&y3, &x4,&y4);
line L1 = line(point(x1,y1), point(x2,y2));
line L2 = line(point(x3,y3), point(x4,y4));
int ans = FindLinePoint(L1, L2, p0);
if(ans == ) printf("NONE\n");///平行;
if(ans == ) printf("LINE\n");///共线;
if(ans == ) printf("POINT %.2f %.2f\n", p0.x, p0.y);
}
printf("END OF OUTPUT\n");
return ;
}

Intersecting Lines---poj1269(求两直线的位置关系)的更多相关文章

  1. Intersecting Lines (计算几何基础+判断两直线的位置关系)

    题目链接:http://poj.org/problem?id=1269 题面: Description We all know that a pair of distinct points on a ...

  2. POJ 1269 Intersecting Lines(判断两直线位置关系)

    题目传送门:POJ 1269 Intersecting Lines Description We all know that a pair of distinct points on a plane ...

  3. 判断两条直线的位置关系 POJ 1269 Intersecting Lines

    两条直线可能有三种关系:1.共线     2.平行(不包括共线)    3.相交. 那给定两条直线怎么判断他们的位置关系呢.还是用到向量的叉积 例题:POJ 1269 题意:这道题是给定四个点p1, ...

  4. ZOJ 1280 Interesting Lines | 求两直线交点

    原题: 求两直线交点 思路借鉴于:http://blog.csdn.net/zxy_snow/article/details/6341282 感谢大佬 #include<cstdio> # ...

  5. POJ 1269 /// 判断两条直线的位置关系

    题目大意: t个测试用例 每次给出一对直线的两点 判断直线的相对关系 平行输出NODE 重合输出LINE 相交输出POINT和交点坐标 1.直线平行 两向量叉积为0 2.求两直线ab与cd交点 设直线 ...

  6. poj 1269 判断直线的位置关系

    题目链接 题意 判断两条直线的位置关系,重合/平行/相交(求交点). 直线以其上两点的形式给出(点坐标为整点). 思路 写出直线的一般式方程(用\(gcd\)化为最简), 计算\(\begin{vma ...

  7. TOYS(计算几何基础+点与直线的位置关系)

    题目链接:http://poj.org/problem?id=2318 题面: TOYS Time Limit: 2000MS   Memory Limit: 65536K Total Submiss ...

  8. POJ1269:Intersecting Lines(判断两条直线的关系)

    题目:POJ1269 题意:给你两条直线的坐标,判断两条直线是否共线.平行.相交,若相交,求出交点. 思路:直线相交判断.如果相交求交点. 首先先判断是否共线,之后判断是否平行,如果都不是就直接求交点 ...

  9. poj 1269 Intersecting Lines——叉积求直线交点坐标

    题目:http://poj.org/problem?id=1269 相关知识: 叉积求面积:https://www.cnblogs.com/xiexinxinlove/p/3708147.html什么 ...

随机推荐

  1. 16.python中的浅拷贝和深拷贝

    在讲什么是深浅拷贝之前,我们先来看这样一个现象: a = ['scolia', 123, [], ] b = a[:] b[2].append(666) print a print b

  2. 【小白的java成长系列】——面向对象基础

    今天来说说java面向对象的知识点~事实上.java在其发展过程中可以成功.非常大一部分原因是其面向对象的思想~ 1.概念 如今来说面向对象思想.也不是什么新的知识点了,我们知道如今非常多语言都有面向 ...

  3. DOM元素对象的属性和方法(1)

    一.accessKey() 作用:获取元素焦点快捷键:设置快捷键后,使用Alt+快捷键,让元素快速获得焦点, <!DOCTYPE html> <html> <head&g ...

  4. Centos 7.3 编译 &amp; 安装 &amp; 测试 facebook faiss

    许多 AI 系统训练完毕,正式上线时的基本操作往往可以抽象为:在高维向量空间中,给定一个向量,寻找与之最相近的 k 个向量.当向量数目异常巨大时,如何快速地执行这一基本操作,便成为 AI 系统在工程应 ...

  5. Oracle单机Rman笔记[2]---RMAN基础介绍

    A.DBA对于备份恢复的问题: 1.在数据库发生故障时,丢失多少数据是可承受的? 2.恢复数据库时,能够忍受的最长时间多少? 3.为了确保您的数据能够被恢复,愿意投入多少成本? 4.备份期间可以关闭系 ...

  6. Android使用scrollview截取整个的屏幕并分享微信

    先看看截图效果图 截取scrollview的屏幕 /** * 截取scrollview的屏幕 **/ public static Bitmap getScrollViewBitmap(ScrollVi ...

  7. Webpack 2 视频教程 007 - 配置 WDS 进行浏览器自动刷新

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  8. andorid 配置器组件和提示消息

    .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  9. OpenACC 绘制曼德勃罗集

    ▶ 书上第四章,用一系列步骤优化曼德勃罗集的计算过程. ● 代码 // constants.h ; ; ; ; const double xmin=-1.7; ; const double ymin= ...

  10. 20155213 2016-2017-2 《Java程序设计》第七周学习总结

    20155213 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只有Lamb ...