水题。判断两条直线位置关系。

考虑平行的情况,那么 四边形的面积会相等,重合的话,四边形的面积相等且为0.

除去这两种就一定有交点。

  1. #include <cstdio>
  2. #include <cmath>
  3. #define db double
  4. using namespace std;
  5. const db eps=1e-;
  6. const db pi = acos(-);
  7. int sign(db k){
  8. if (k>eps) return ; else if (k<-eps) return -; return ;
  9. }
  10. int cmp(db k1,db k2){return sign(k1-k2);}
  11. struct point{
  12. db x,y;
  13. point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}
  14. point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
  15. point operator * (db k1) const{return (point){x*k1,y*k1};}
  16. point operator / (db k1) const{return (point){x/k1,y/k1};}
  17. };
  18. db dot(point k1,point k2){
  19. return k1.x*k2.x+k1.y*k2.y;
  20. }
  21. db cross(point k1,point k2){
  22. return k1.x*k2.y-k1.y*k2.x;
  23. }
  24. int inmid(db k1,db k2,db k3){return sign(k1-k3)*sign(k2-k3)<=;}
  25. int inmid(point k1,point k2,point k3){//k3在[k1,k2]
  26. return inmid(k1.x,k2.x,k3.x)&&inmid(k1.y,k2.y,k3.y);
  27. }
  28. point getLL (point k1,point k2,point k3,point k4){//两直线交点
  29. db w1=cross(k1-k3,k4-k3),w2=cross(k4-k3,k2-k3);
  30. return (k1*w2+k2*w1)/(w1+w2);
  31. }
  32. bool onS(point k1,point k2,point q){//q在[k1,k2]
  33. return inmid(k1,k2,q)&&sign(cross(k1-q,k2-k1))==;
  34. }
  35. int checkLL(point k1,point k2,point k3,point k4){//求两条直线是否 (平行||重合)
  36. return cmp(cross(k3-k1,k4-k1),cross(k3-k2,k4-k2))==;
  37. }
  38. struct Line{
  39. point p[];
  40. };
  41.  
  42. db xl,yl,x2,y2;
  43. int n;
  44. point p[];
  45. int main(){
  46. scanf("%d",&n);
  47. printf("INTERSECTING LINES OUTPUT\n");
  48. while (n--){
  49. for(int i=;i<=;i++){
  50. scanf("%lf%lf",&p[i].x,&p[i].y);
  51. }
  52. if(checkLL(p[],p[],p[],p[])){
  53. if(sign(cross(p[]-p[],p[]-p[]))==){
  54. printf("LINE\n");
  55. } else{
  56. printf("NONE\n");
  57. }
  58. } else{
  59. point tmp = getLL(p[],p[],p[],p[]);
  60. printf("POINT %.2f %.2f\n",tmp.x,tmp.y);
  61. }
  62. }
  63. printf("END OF OUTPUT\n");
  64. }

poj 1269的更多相关文章

  1. POJ 1269 (直线求交)

    Problem Intersecting Lines (POJ 1269) 题目大意 给定两条直线,问两条直线是否重合,是否平行,或求出交点. 解题分析 主要用叉积做,可以避免斜率被0除的情况. 求交 ...

  2. 直线相交 POJ 1269

    // 直线相交 POJ 1269 // #include <bits/stdc++.h> #include <iostream> #include <cstdio> ...

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

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

  4. poj 1269 线段与线段相交

    Intersecting Lines Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13605   Accepted: 60 ...

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

    题目链接:POJ 1269 Problem Description We all know that a pair of distinct points on a plane defines a li ...

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

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

  7. poj 1269 Intersecting Lines

    题目链接:http://poj.org/problem?id=1269 题目大意:给出四个点的坐标x1,y1,x2,y2,x3,y3,x4,y4,前两个形成一条直线,后两个坐标形成一条直线.然后问你是 ...

  8. poj 1269 水题

    题目链接:http://poj.org/problem?id=1269 #include<cstdio> #include<cstring> #include<cmath ...

  9. ●POJ 1269 Intersecting Lines

    题链: http://poj.org/problem?id=1269 题解: 计算几何,直线交点 模板题,试了一下直线的向量参数方程求交点的方法. (方法详见<算法竞赛入门经典——训练指南> ...

  10. POJ 1269 - Intersecting Lines - [平面几何模板题]

    题目链接:http://poj.org/problem?id=1269 Time Limit: 1000MS Memory Limit: 10000K Description We all know ...

随机推荐

  1. python测试开发django-52.xadmin添加自定义的javascript(get_media)

    前言 我想使用xadmin在列表页每一行元素添加一个按钮,当点击这个按钮的时候,能发个请求出去,后台执行相关功能.于是想到添加自定义的javascript脚本能实现. 在/stackoverflow上 ...

  2. springboot RestTemplate httpclient

    RestTemplate是spring支持的一个请求http rest服务的模板对象,性质上有点像jdbcTemplate RestTemplate底层还是使用的httpclient(org.apac ...

  3. 【Google设计冲刺】一种适合于创新小组的协作方式

    传统的产品闭环是1.产品策划-2.研发-3.上线-4.等待市场反馈,4个步骤.对于一个创新项目来说,试错成本过高,等待周期过长[注释1].那么,有没有一种适合创新项目的协作方式呢?谷歌风投杰克·纳普发 ...

  4. protobuf 动态创建

    https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html https://originlee.com/2015/03/14/ana ...

  5. PHP 实现自动加载

    自动载入主要是省去了一个个类去 include 的繁琐,在 new 时动态的去检查并 include 相应的 class 文件. 先上代码: //index.php <?php class Cl ...

  6. 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...

  7. Python之多线程和多进程

    一.多线程 1.顺序执行单个线程,注意要顺序执行的话,需要用join. #coding=utf-8 from threading import Thread import time def my_co ...

  8. Scala 隐式(implicit)详解

    文章正文 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码. 1.Spark 中 ...

  9. mac 下 通过 brew 安装 MariaDB

    其实在两年多前,我就推荐大家使用MariaDB了,其实真的很好用,性能高,也可以完全替代mysql 主要是这oracle实在是太**了,java都收费了,mysql迟早的事... 安装MariaDB之 ...

  10. mongodb配置文件解说(转载)

    启动方式 ./bin/mongod -f mongodb.conf 会看到 about to fork child process, waiting until server is ready for ...