poj1269(两线段的关系,求交点)

题目链接:点击打开链接

利用斜率,如斜率相等,则为重合和平行的关系,再求其中一端点是否在另一条线段上(还是利用斜率求的)

若不相等则求交点,交点在两个线段上,利用叉积求即可

代码:

#include<stdio.h>
int main()
{
int n,i;
double x1,x2,x3,x4,y1,y2,y3,y4,x,y,a,b,c,d;
scanf("%d",&n);
printf("INTERSECTING LINES OUTPUT\n");
while(n--)
{
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
a=x1-x2;
b=y1-y2;
c=x3-x4;
d=y3-y4;
if(a*d==b*c)
{
if(b*(x3-x1)==a*(y3-y1))
printf("LINE\n");
else
printf("NONE\n");
}
else
{
x=(a*(x3*y4-y3*x4)-c*(x1*y2-y1*x2))/(c*b-a*d);
y=(b*(x3*y4-y3*x4)-d*(x1*y2-y1*x2))/(c*b-a*d);
printf("POINT %.2lf %.2lf\n",x,y);
}
}
printf("END OF OUTPUT\n");
return 0;
 } 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值