书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!

2011年10月28日

叉乘(六)——点在多边形内吗?

摘要: 用途6:判断点P是否在多边形中是计算几何中一个非常基本但是十分重要的算法。以点P为端点,向左方作射线L,由于多边形是有界的,所以射线L的左端一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到了多边形的内部,遇到第二个交点的时候,离开了多边形,……所以很容易看出当L和多边形的交点数目C是奇数的时候,P在多边形内,是偶数的话P在多边形外。 但是有些特殊情况要加以考虑。 如图下图(a)(b)(c)(d)所示。 在图(a)中,L和多边形的顶点相交,这时候交点只能计算一次; 在图(b)中,L和多边形顶点的交点不应被计算; 在图(c)和(d) 中,L... 阅读全文

posted @ 2011-10-28 10:33 More study needed. 阅读(589) 评论(0) 推荐(0) 编辑

叉乘(五)——点、线、多边形、圆在矩形中吗?

摘要: 1.点: 只要判断该点的横坐标和纵坐标是否夹在矩形的左右边和上下边之间。2.线段、折线、多边形: 因为矩形是个凸集,所以只要判断所有端点是否都在矩形中就可以了。3.矩形: 只要比较左右边界和上下边界就可以了。4.圆: 很容易证明,圆在矩形中的充要条件是: 圆心在矩形中且圆的半径小于等于圆心到矩形四边的距离的最小值。 阅读全文

posted @ 2011-10-28 10:08 More study needed. 阅读(378) 评论(0) 推荐(0) 编辑

叉乘(四)——线段与直线相交吗?

摘要: 用途4:明白了用途3以后,再来看用途4那是相当的简单呀。如果线段P1P2和直线Q1Q2相交,则线段P1P2跨立直线Q1Q2,即:( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0。没错,就是这么的简单,不用怀疑什么。 阅读全文

posted @ 2011-10-28 09:57 More study needed. 阅读(408) 评论(0) 推荐(0) 编辑

叉乘(三)——线段与线段相交吗?

摘要: 用途3:我们现在的任务就是判断线段P1P2和线段Q1Q2是否相交。我们分两步确定两条线段是否相交: (1)快速排斥试验 设以线段 P1P2 为对角线的矩形为R, 设以线段 Q1Q2 为对角线的矩形为T, 如果矩形R和矩形T不相交,显然两线段不会相交。 (2)跨立试验 如果两线段相交,则两线段必然相互跨立对方。 若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于矢量( Q2 - Q1 ) 的两侧, 即1.(P1 - Q1) x (Q2 - Q1)<0, 这个式子表明Q1Q2在P1Q1的右方,也就是说P1Q1在Q1Q2的... 阅读全文

posted @ 2011-10-28 00:24 More study needed. 阅读(828) 评论(0) 推荐(0) 编辑

导航

书山有径勤为路>>>>>>>>

<<<<<<<<学海无涯苦作舟!