比较完美的点在多边行内得判断(c++)
来源:互联网 发布:mac版本不支持银联 编辑:程序博客网 时间:2024/06/06 05:23
inline int
isLeft( CPoint *P0, CPoint *P1, CPoint *P2 )
{
return ( (P1->x - P0->x) * (P2->y - P0->y)
- (P2->x - P0->x) * (P1->y - P0->y) );
}
bool CPointInPolygonDlg::PointPolygonAlgorithm(CPoint *pt)
{
int wn = 0; // the winding number counter
int j=0;
std::vector<CPoint *>::iterator it;
// loop through all edges of the polygon
for (it=vPolygon.begin(); it<vPolygon.end()-1; it++)// edge from V[i] to V[i+1]
{
j++;
if ((*(it))->y <= pt->y) { // start y <= pt->y
if ((*(it+1))->y > pt->y) // an upward crossing
if (isLeft( *it, *(it+1), pt) > 0) // P left of edge
++wn; // have a valid up intersect
}
else { // start y > P.y (no test needed)
if ((*(it+1))->y <= pt->y) // a downward crossing
if (isLeft( *it, *(it+1), pt) < 0) // P right of edge
--wn; // have a valid down intersect
}
}
if (wn==0)
return false;
return true;
}
- 比较完美的点在多边行内得判断(c++)
- 点在多边行内的判断(c++)
- 判断点是否在多边型内(zoj1081)
- 判断点是否在多边型内
- 判断点是否在多边型内
- zju1081 判断点是否在简单多边型内(包括凹的情况)
- 判断点在多边形内的多种写法(C版)
- C#+AE 判断点是否在面内的方法
- C#+AE 判断点是否在面内的方法
- 判断多边行对称
- 判断点是否在多边形内(C++)
- C 判断点是否在多边形内
- 点在多边形内的判断(射线法)
- 点在多边形内的判断
- 模板[点在多边形内的判断]
- 点在多边形内的判断
- 判断点在多边形内的方法
- 判断点在多边形内的算法
- vim插件使用
- 插件编写规范和流程
- 空间拓扑关系判断方法的研究
- pku 3219 Binomial Coefficients 位运算相关的三种方法
- 凸多边形的判断(c++)
- 比较完美的点在多边行内得判断(c++)
- 多边形填充算法实现
- 计算几何常用算法介绍
- 30 2e 30 2e 30 2e 30
- STL实践指南
- vim资源
- 测试难题
- Nutch 分词 中文分词 paoding 疱丁
- h.264qq群讨论记录