id=1269" rel="nofollow">Intersecting Lines

大意:给你两条直线的坐标,推断两条直线是否共线、平行、相交。若相交。求出交点。

思路:线段相交推断、求交点的水题。没什么好说的。

struct Point{
double x, y;
} ;
struct Line{
Point a, b;
} A, B; double xmult(Point p1, Point p2, Point p)
{
return (p1.x-p.x)*(p2.y-p.y)-(p1.y-p.y)*(p2.x-p.x);
} bool parallel(Line u, Line v)
{
return zero((u.a.x-u.b.x)*(v.a.y-v.b.y)-(v.a.x-v.b.x)*(u.a.y-u.b.y));
} Point intersection(Line u, Line v)
{
Point ret = u.a;
double t = ((u.a.x-v.a.x)*(v.a.y-v.b.y)-(u.a.y-v.a.y)*(v.a.x-v.b.x))/((u.a.x-u.b.x)*(v.a.y-v.b.y)-(u.a.y-u.b.y)*(v.a.x-v.b.x));
ret.x += (u.b.x-u.a.x)*t, ret.y += (u.b.y-u.a.y)*t;
return ret;
} int T; void Solve()
{
scanf("%d", &T);
printf("INTERSECTING LINES OUTPUT\n");
while(T--)
{
scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &A.a.x, &A.a.y, &A.b.x, &A.b.y, &B.a.x, &B.a.y, &B.b.x, &B.b.y);
if(parallel(A, B) && zero(xmult(A.a, B.a, B.b)))
{
printf("LINE\n");
}
else if(parallel(A, B))
{
printf("NONE\n");
}
else
{
Point t = intersection(A, B);
printf("POINT %.2f %.2f\n", t.x, t.y);
}
}
printf("END OF OUTPUT\n");
}

最新文章

  1. 将list集合的元素按照添加顺序的倒序进行排列取出
  2. 哪些问题是面试官经常问Java工程师的问题 ? --- 转自quora
  3. Android什么时候进行View中Background的加载
  4. 让IE系列支持HTML5的html5shiv.js和respond.min.js
  5. iOS //清除本地缓存
  6. 数据库 SQL Server 到 MySQL 迁移方法总结
  7. 建立Maven工程时出错,Failure to transfer com.thoughtworks.xstream:xstream:jar:1.3.1
  8. 自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie
  9. Spark(3) - External Data Source
  10. UniqueID和ClientID的来源
  11. Asp.net笔记(1)
  12. Objective-c 中的算术函数和常数的表示
  13. iOS8开发~UI布局(二)storyboard中autolayout和size class的使用具体解释
  14. Python3基础 使用clear() 清空一个字典
  15. Mina框架(实战详解)
  16. 体验一把做黑客的感觉-IPC$入侵之远程控制
  17. DTcms 模版用vs2015或2017 打开编辑时候 粘贴出问题 代码被调整
  18. 莫烦sklearn学习自修第八天【过拟合问题】
  19. docker的常用命令汇总
  20. 实现了一下Mp3播放器的功能

热门文章

  1. C++实现顺序栈类求解中缀表达式的计算
  2. PL/SQL编程接触
  3. Nginx学习总结(5)——Nginx基本配置备忘
  4. js的几个可能不清晰的问题
  5. python协程有多厉害?
  6. [luoguP3068] [USACO13JAN]派对邀请函Party Invitations(stl大乱交)
  7. bzoj 1702 贪心,前缀和
  8. ubuntu使用git时,终端不显示git分支。
  9. python学习之-- logging模块
  10. C. Nearest vectors--cf598C(极角排序)