1楼:匿名用户
这个是属来于计算几何算法了,判
源断一个点是否属于任意多边形,就要以这个点为横坐标,画一条横向射线,如果和多边形的交点个数为奇数则在多边形内,否则就在外,特殊情况:
1、当射线与其中一条边重合,那么边忽略不计;
2、当射线与其中一顶点相交(外凸),交点只能计算一个;
3、当射线与其中一顶点相交(内凹),交点不应被计算;
下面为伪**:
count ← 0;
以(x,y)为端点,作从右向左的射线l;
for 多边形的每条边s
do if (x,y)在边s上
then return true;
if s不是水平的
then if s的一个端点在l上
if 该端点是s两端点中纵坐标较大的端点
then count ← count+1
else if s和l相交
then count ← count+1;
if count mod 2 = 1
then return true;
else return false;
2楼:匿名用户
你好 我认为判断一个点是不是在一
个不规则的多边形内,
可用面积相等法;内
设此多容边形的面积为s;
然后将该点与多边形的个定点连起来;
于是便将这个多边形分成了许多小三角形;
若这些小三角形的面积之和等于s;则说明该点在多边形里。
mfc:判断点是否在某一区域
3楼:小逸纱布
1.判断一点是否在矩形区域内的方法:
crect rc (point_1,point_2);//构造矩形区域
调用crect::ptinrect
bool flag = rc.ptinrect(point_key);if (flag)else点point_key不在构造的矩形区域内;
2.判断一点是否在否个多边形区域内的方法:
用crgn::createpolygonrgn
这个函数,构造一个区域
crgn rgna ;
cpoint ptvertex[3];
ptvertex[0] = point_1;
ptvertex[1] = point_2;
ptvertex[2] = point_3;
//这里只说明三角形的情况,其他类比即可!
rgna.createpolygonrgn(ptvertex , 3 , alternate);
然后再调用ptinregion去判断
bool flag= rgna.ptinregion(point_key);if (flag)else点point_key不在构造的多边形区域内;
3.判断一点是否在椭圆形区域内crgn rgnb;rgnb.createellipticrgn(point_1.
x,point_1.y,point_2.x,point_2.
y);bool flag = rgnb.ptinregion(point_key);if (flag)else点point_key不在rgnb区域内;
怎么判断点是否在圆内,怎么判断一个点是否在一个圆内
1楼 匿名用户 连接这个点和圆心,若这个点和圆心的距离小于圆的半径,则该点在圆内。 2楼 匿名用户 根据点到圆心距离与半径比较大小 怎样计算一个点是否在圆内? 3楼 匿名用户 一个点的xy坐标能满足圆方程 的,表示这个点在这个圆方程所在的曲线上 假设圆方程是 中心为 0,0 半径为1的圆的方程 x ...