博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj_1269 Intersecting Lines -判两直线状态(水题、坑OJ)
阅读量:5165 次
发布时间:2019-06-13

本文共 1873 字,大约阅读时间需要 6 分钟。

题意:判直线相交、平行、重合

吐槽:坑OJ,G++WA,C++AC,模版题

/************************************************Author        :DarkTongCreated Time  :2016/8/3 23:02:25File Name     :Poj_1269.cpp*************************************************///#include 
#include
#include
#include
using namespace std;#define eps 1e-9typedef long long LL;typedef double Db;struct Point{ Db x, y; Point(Db x=0, Db y=0):x(x), y(y){}}C;typedef Point Vector;//向量或点的四则运算Vector operator + (Vector A, Vector B){ return Vector(A.x+B.x, A.y+B.y);}Vector operator - (Vector A, Vector B){ return Vector(A.x-B.x, A.y-B.y);}Vector operator * (Vector A, Db p){ return Vector(A.x*p, A.y*p);}Vector operator / (Vector A, Db p){ return Vector(A.x/p, A.y/p);}int dcmp(Db x){ if(fabs(x)
0(-90, 90), ==0(90或-90), <0((-180,90)或(90,180])*/Db Cross(Vector A, Vector B){ return A.x*B.y - A.y*B.x;} /*叉积(判<180的角): ==0(共线), >0(逆时针), <0(顺时针) */Point GetLineIntersection(Point P, Vector v, Point Q, Vector w){ Vector u = P-Q; double t = Cross(w, u)/Cross(v, w); //刚好时两个向量同向,所以不用取绝对值 return P+v*t;}/**************************************************************/Point poi[4];int main(){ int T, cas=1; scanf("%d", &T); puts("INTERSECTING LINES OUTPUT"); while(T--) { for(int i=0;i<4;++i) scanf("%lf%lf", &poi[i].x, &poi[i].y); Vector v1 = poi[1]-poi[0], v2 = poi[3]-poi[2]; if(dcmp(Cross(v1, v2))==0) { if(dcmp(Cross(poi[0]-poi[2], v1))==0) puts("LINE"); else puts("NONE"); } else { Point t = GetLineIntersection(poi[0], v1, poi[2], v2); printf("POINT %.2lf %.2lf\n", t.x, t.y); } } puts("END OF OUTPUT"); return 0;}

转载于:https://www.cnblogs.com/DarkTong/p/5735040.html

你可能感兴趣的文章
TCP/IP 邮件的原理
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>