两线段相交

已知两个线段分别是(x1,y1)(x2,y2)以及(x3,y3)(x4,y4)。

设线段所在的直线方程为ax+by+c=0

a1=y2-y1, b1=-(x2-x1), c1=-a1*x1-b1*y1=-x1*y2+x2*y1;

a2=y4-y3, b2=-(x4-x3), c2=-a2*x3-b2*y3=-x3*y4+x4*y3;

d=a1*b2-a2*b1

1. 判断是否相切:a1/b1=a2/b2;

2. 判断是否共线:a1/a2=c1/c2;

3. 求取交点:((b1*c2-b2*c1)/d,(a2*c1-a1*c2)/d)

4. 若判断两线段是否相交,则需要判断交点是否在这两条线段上(方法不限)。

func(a,b,c,d)  return a*d-b*c;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值