![]() ![]() |
|
点与直线,点与多边形的位置关系的判断(算法) | |
作者:未知 文章来源:转载 点击数 更新时间:2014-1-16 10:52:50 文章录入:admin 责任编辑:admin | |
|
|
点在直线左右、点在多边形内外的判断(2013-05-06 17:04:58)转载▼ 方法1: http://zhidao.baidu.com/question/47341112.html 已知P(0,0),Q(3,2)两点,试判断P,Q是否在直线2x+3y=4的同一侧。 解:直线2x+3y=4 方法2: http://www.cnblogs.com/carekee/articles/1877575.html 怎么判断坐标为(xp,yp)的点P是在直线的哪一侧呢? 设直线是由其上两点(x1,y1),(x2,y2)确定的,直线方向是由(x1,y1)到(x2,y2)的方向。 假设直线方程为:Ax+By+C=0,则有: A=y2-y1; B=x1-x2; C=x2*y1-x1*y2; 这时可以通过计算D,来判断点P是在直线的哪一侧: 若D<0,则点P在直线的左侧;若D>0,则点P在直线的右侧;若D=0,则点P在直线上。 注:这里的直线是有方向性的! 方法3:利用矢量计算快速判定一点在直线的哪一侧 http://www.cnblogs.com/vilyLei/articles/1567852.html 例如矢量A×矢量B=矢量C 注:叉乘计算公式! http://hi.baidu.com/foreshore/blog/item/693bce3d9b8cf2c19f3d6218.html 若将向量用坐标表示(三维向量),向量a=(x1,y1,z1),向量b=(x2,y2,z2),则: 点乘,也叫向量的内积、数量积。 向量a·向量b = |a||b|cos; 向量a·向量b = x1x2 + y1y2 + z1z2 叉乘,也叫向量的外积、向量积。 |向量c| = |向量a×向量b| = |a||b|sin 向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断 向量a×向量b = | i j k | (i、j、k分别为空间中相互垂直的三条坐标轴的单位向量) 向量的外积不遵守乘法交换率 向量a×向量b = -向量b×向量a
判断点是否在矩形、多边形中 http://blog.csdn.net/qiulei563/article/details/4869692 http://mniwjb.blog.sohu.com/58905924.html http://dev.gameres.com/Program/Abstract/Geometry.htm
方法1: 只要判断该点的横坐标和纵坐标是否夹在矩形的左右边和上下边之间。 例如:矩形四个顶点P1,P2,P3,P4,判断P是否包含在矩形中, 只需要判断:|P2P|×|P2P1|*|P3P|×|P3P4|<=0 and |P1P|×|P1P4|*|P2P|×|P2P3|<=0 方法2:采用点是否包含在多边形中判断 以该点为顶点,做一条射线,使得矩形四个顶点中任意一点都不在射线上。 若该射线与矩形有且仅有一个交点,则在矩形内;若有零个或两个焦点,则在矩形外。 至于射线,可以通过选择肯定在矩形外的一点和已知点练成线段来构成。 只要点坐标不在矩形的left~right,bottom~top范围内即可 |
|
![]() ![]() |