沈孝钧计算机算法基础答案,计算机算法基础教学课件ppt作者沈孝钧第12章-PPT-N2课件.pptx...

计算机算法基础教学课件ppt作者沈孝钧第12章-PPT-N2课件.pptx

第 12 章计算几何基础计算几何(Computational Geometry)是计算机算法的一个重要分支,它要解决的是如何有效地完成与几何问题有关的计算问题。本章主要内容:平面线段及相互关系平扫线技术和线段相交的确定平面点集的凸包最近点对问题12-112.1 平面线段及相互关系给定X-Y平面上两个点,p1 = (x1, y1) 和 p2 = (x2, y2),任何满足以下关系的点p = (x, y) 称为这两个点的一个凸线性组合: x = ? x1 + (1-?)x2和 y = ? y1+(1-?)y2, 0 ? ? ? 1,或表示为 p = ? p1 + (1-?)p2,或者表示为 = ? + (1-?)给定两个点,p1 = (x1, y1) 和 p2 = (x2, y2),包含这两点的所有凸线性组合的点的集合定义为这两点之间的线段,并记为 ,而这两个点称为该线段的端点。表示从p1到p2的有向线段。当p1 = (0, 0) 时, 亦称为向量p2。?12-2向量的点积和叉积 (定义12.3)给定X-Y平面上两个向量,p1 = (x1, y1) 和 p2 = (x2, y2),它们的点积和叉积分别定义如下:p1 ? p2 = ? = x1 x2 + y1 y2,p1 ? p2 = ? = det = = x1 y2 - x2 y1。?显然, p1 ? p2 = p2 ? p1,但是 p1 ? p2 = - p2 ? p1。12-3点积和叉积的几何含义Yp2 (x2, y2)点积p1?(x1, y1)?? O = (0,0)X cos?= , sin?= , cos? = , sin? = 。cos? = cos(? - ?) = cos? cos? + sin? sin? = = 。所以有, (a)p1 ? p2 = |Op1||Op2|cos?。?12-4叉积?cos?= ,sin?= ,cos? = ,sin? = 。?(b)以 |Op1|和|Op2| 为两边作一平行四边形,其面积是:? = |Op1| ? |up2| = |Op1||Op2|sin? = |Op1||Op2| sin(? - ?) = |Op1||Op2|(sin? cos? - sin? cos?) = |Op1||Op2|( - )= x1 y2 – x2 y1 = p1 ? p2。因 sin? 可正可负,面积 ? 可正可负。 p1 ? p2 = - p2 ? p1。12-5平面线段的相互关系定理 12.1 给定X-Y平面上两个向量,p1和 p2,如果p1 ? p2 > 0 那么p1 是在 p2 的顺时针方向上,否则是在其逆时针方向上。如果p1 ? p2 = 0,则表明两个向量共线。证明:由上面对图12-1(b)的分析可知,p1 ? p2 = sin?。如果p1 ? p2 > 0,那么就有sin? > 0,而sin? > 0说明角度? = (? - ?) > 0,即p1 是在 p2 的顺时针方向上;否则,角度(? - ?) < 0,即p1是在 p2 的逆时针方向上。如果p1 ? p2 = 0,sin? = 0,显然表明二个向量共线。?12-6推论12.2当我们沿着线段 从p0走到p1后又转到线段 上时,如果叉积p1 ? p2 > 0,那么我们在p1点向左拐;如果p1 ? p2 < 0,则是向右拐;如果p1 ? p2 = 0,则方向不变或180?逆向。证明:当p1 ? p2 > 0时,由定理12.1,p1 是在 p2 的顺时针方向上。如下图(a) (图12-2(a))所示,这时角度? = (? - ?) > 0,所以我们在p1点向左拐。反之,如果p1 ? p2 < 0,如下图(b)所示,我们在p1点则是向右拐。显然,如果p1 ? p2 = 0,则两个向量重迭,因此要么不改变方向,要么转180?逆向行走。?P2P1P1?P2?????OO(a) p1 ? p2 > 0, 在p1处向左拐(b) p1 ? p2 < 0, 在p1处向右拐12-7判断两线段是否相交问题:设p1 = (x1, y1),p2 = (x2, y2),p3 = (x3, y3) 和 p4 = (x4, y4),判断线段 和 是否有交点。解: 一个直接求交点的方法假设有交点p = (x, y),那么存在0 ? ? ? 1,和0 ? ? ? 1,使得 = ? + (1-?) = ? + (1-?) 。因此有:? + ? = 。 由克莱姆法则,若A = ? 0,可解出:(接下页)?12-8? = ,? = 。解出? 和?后再去检查他们是否满足0 ? ? ? 1,和0 ? ? ? 1。这个方法的主要缺点是要做除法。当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值