【POJ 1269】判断两直线相交
利用叉积解方程
#include <cstdio>
#define MAX 1<<31
#define dd double
int xmult(dd x1,dd y1,dd x2,dd y2,dd x,dd y){
return (x1-x)*(y2-y)-(x2-x)*(y1-y);
}
int main(){
int n;
dd x1,y1,x2,y2,x3,y3,x4,y4;
scanf("%d",&n);
puts("INTERSECTING LINES OUTPUT");
while(n--){
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
dd a1=y1-y2;
dd b1=x2-x1;
dd c1=xmult(x1,y1,x2,y2,,);
dd a2=y3-y4;
dd b2=x4-x3;
dd c2=xmult(x3,y3,x4,y4,,);
if(a1*b2==a2*b1){
if(xmult(x1,y1,x2,y2,x3,y3)==)
puts("LINE");
else puts("NONE");
}
else {
dd cx,cy;
cx=(b1*c2-c1*b2)/(a1*b2-a2*b1);
cy=(a1*c2-c1*a2)/(b1*a2-b2*a1);
printf("POINT %.2f %.2f\n",cx,cy);
}
}
puts("END OF OUTPUT");
}
利用点斜式解方程
#include <cstdio>
#define MAX 1<<31
#define dd double
struct P{
dd x,y;
void input(){
scanf("%lf%lf",&x,&y);
}
void output(){
printf("POINT %.2f %.2f\n",x,y);
}
};
struct L{
P s,e;
void input(){
s.input(),e.input();
}
dd k(){
if(s.x==e.x)return MAX;
return (s.y-e.y)/(s.x-e.x);
}
}l1,l2;
int xmult(P a,P b,P o){
return (a.x-o.x)*(b.y-o.y)-(b.x-o.x)*(a.y-o.y);
}
void getCross(L a,L b){
P c;
dd ka=a.k(),kb=b.k();
if(ka==MAX){//a是竖直的
c.x=a.s.x;
c.y=(c.x-b.s.x)*kb+b.s.y;
}
else{
if(kb==MAX)
c.x=b.s.x;
else
c.x=(a.s.y-b.s.y-ka*a.s.x+kb*b.s.x)/(kb-ka);
c.y=(c.x-a.s.x)*ka+a.s.y;
}
c.output();
}
int main(){
int n;
scanf("%d",&n);
puts("INTERSECTING LINES OUTPUT");
while(n--){
l1.input(),l2.input();
dd ka=l1.k(),kb=l2.k();
if(ka==kb){
if(xmult(l1.s,l1.e,l2.s)==)
puts("LINE");
else puts("NONE");
}
else
getCross(l1,l2);
}
puts("END OF OUTPUT");
}
【POJ 1269】判断两直线相交的更多相关文章
- POJ 1269 /// 判断两条直线的位置关系
题目大意: t个测试用例 每次给出一对直线的两点 判断直线的相对关系 平行输出NODE 重合输出LINE 相交输出POINT和交点坐标 1.直线平行 两向量叉积为0 2.求两直线ab与cd交点 设直线 ...
- poj 1269 Intersecting Lines(直线相交)
Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8637 Accepted: 391 ...
- Pick-up sticks(判断两直线相交)
Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 11335 Accepted: 4250 D ...
- POJ 1269 Intersecting Lines(判断两直线位置关系)
题目传送门:POJ 1269 Intersecting Lines Description We all know that a pair of distinct points on a plane ...
- Jack Straws(poj 1127) 两直线是否相交模板
http://poj.org/problem?id=1127 Description In the game of Jack Straws, a number of plastic or wood ...
- poj 1127:Jack Straws(判断两线段相交 + 并查集)
Jack Straws Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 2911 Accepted: 1322 Descr ...
- Intersecting Lines (计算几何基础+判断两直线的位置关系)
题目链接:http://poj.org/problem?id=1269 题面: Description We all know that a pair of distinct points on a ...
- poj 1269 线段与线段相交
Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13605 Accepted: 60 ...
- hdu 1147:Pick-up sticks(基本题,判断两线段相交)
Pick-up sticks Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
随机推荐
- 事件--c#
以上是事件的几个操作. 事件由五个组件构成: 具体作用如下: 事件声明: event 委托类型 事件名:例子: public event EventHandler Elapsed; 还可同时声明几个 ...
- HTML 学习笔记(表格)
HTML 表格 HTML中的表格使用标签<table>来实现,每个表格均有若干行由<tr>标签来定义,每个<tr>表示一行.美航被分为若干个单元格用<td&g ...
- 转- android硬件传感器
纯属转载:http://dev.10086.cn/cmdn/bbs/thread-41843-1-1.html 1.传感器入门 自从苹果公司在2007年发布第一代iPhone以来,以前看似和手机挨不着 ...
- 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)(转)
1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scr ...
- SQL server 数据库备份还原Sql
/************ 一.数据库备份 ************/ --完整备份默认追加到现有的文件 backup database DBXS To disk='d:\backup\DBXS_fu ...
- ACM水题
ACM小白...非常费劲儿的学习中,我觉得目前我能做出来的都可以划分在水题的范围中...不断做,不断总结,随时更新 POJ: 1004 Financial Management 求平均值 杭电OJ: ...
- HoloLens开发手记 - Unity之Recommended settings 推荐设置
Unity提供了大量的设置选项来满足全平台的配置,对于HoloLens,Unity可以通过切换一些特定的设置来启用HoloLens特定的行为. Holographic splash screen 闪屏 ...
- C# StopWatch的使用
在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性 名称 说明 Elapsed 获取当前实例测量得出的总 ...
- java并发:线程池、饱和策略、定制、扩展
一.序言 当我们需要使用线程的时候,我们可以新建一个线程,然后显式调用线程的start()方法,这样实现起来非常简便,但在某些场景下存在缺陷:如果需要同时执行多个任务(即并发的线程数量很多),频繁地创 ...
- 20160223 - Windows 10 的文件资源管理器下出现重复文件夹的解决办法
现象: 安装 OneDrive 从 Windows 7.8.8.1 升级来的 Windows 10 的电脑,可能会出现文件资源管理器左侧面板中出现重复的文件夹. 通常有:视频.图片.文档.下载.音频. ...