Recast判定两条线段是否相交

本文深入探讨了点与直线之间的位置关系判断方法,包括左、右、在线上等情形,通过Recast算法详细解释了如何使用异或运算来判断点是否位于直线两侧。此外,还介绍了亦或操作的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 基础知识:

1 亦或操作

1^1=0  0^0=0 1^0=1  0^1=1

2 点和直线的关系

参考:https://blog.youkuaiyun.com/hjssss/article/details/86539343

  • 具体算法

当ab直线和cd直线相交,则存在 a在线段ab的左边,d在线段ab的右边

即 l1 = left(a, b,c) = 1 , l2 = left(a,b,d) = 0

 

Recast 算法如下:

1 首先判定是否共线,如果共线直接返回,再判定c,d两点和ab直线的位置关系(不包含点在直线上)

           2 共线判定

                

          3 判定点和直线关系(在直线左边,在直线上,在直线右边)

                

 

           4  取反再进行异或操作,在直线两侧值为1,在直线同侧,值为 0

                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值