计算几何(多边形面积的计算,线段规范相交模板)

本文介绍了一种高效的二维平面内线段相交判定方法,避免了解析几何中的浮点除法运算带来的误差和效率问题。通过判断线段端点在另一线段两侧及利用向量叉积来确定点的相对位置,实现线段相交的快速准确判定。

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

二维平面内线段规范相交的判定

摘自 《计算几何》    --谢迪

规范相交

---两条线段恰有唯一一个不是断点的公共点。

可以用解析几何解法

1.列直线方程: Ax+By+C=0

  判断解的情况

  --若无解则平行

  --无穷多解,则说明共线

  --唯一解

    -判断是否分别在两条线段的内部

 

解析结合解法的问题  

1.求解方程需要浮点除法运算

  --浮点误差

    特别是接近平行时

  --浮点除法运算速度

2.总体效率

  --需要比较定点

  --交点没有用

 

计算几何的算法

  --仅需要加、减、乘

  --不求交点

如何判断?

两条线段相交时,每条线段两个端点都在另一条线段的异侧

 

 

 

 

两条线段相交时,每条线段的端点都在另一条线段的异侧

--判断异侧

--有向线段

--判断一个点是在有向线段的左边还是右边

 

判断一个点实在有向线段的左边还是在右边

--添加一条辅助向量

--若要判断P的相对位置,只要判断向量P1P在向量P1P2的顺时针还是逆时针

 

 

向量的叉积

--向量a到向量b成逆时针,上述结果大于0;

--向量a到向量b成顺时针,上述结果小于0;

--向量a和向量b共线时(不论同向还是反向),上述结果等于0.

 

 

向量的叉积

--本质上是有向面积

 

有向面积的应用

--求凸多边形的面积

--将凸多边形用三角剖分,然后求所有三角形面积之和

 

 

有向面积的应用

--求凸多边形的面积

--任取一点(为计算方便可取原点),将它与所有的多边形的定点都连上辅助线

--依逆时针方向扫描定点,依次求出当前定点和下一个的顶点以及原点构成的三角形的有向面积,即叉积/2.并将所有的面积相加即可。

 

 因为向量的叉积有正负之分,所以图中的蓝色区域的面积和红的区域的面积的正负是相反的(红色为正,蓝色为负)。也就是说,相对于原点,最后蓝色区域的面积总会被抵消,相当于求出的就是红色的区域。

 

 

有向面积的应用

--任意多边形的面积

--与前面一种方法一样就可以求出来

--可见,有向面积的引入极大方便了计算。

 

 

 

--P和P'在向量P1P2的异侧,即

 

--且P1和P2在向量PP'的异侧,即

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值