征求一个好的算法 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiMultimedia/html/delphi_20061008213029263.html
如何判定一个点是否在一个多边形内呢?
canvas上的有一个任意多边形,怎样判定canvas上的点是否在这个多边形内呢?
看到这样的帖子,首先要赞一个。
我不是技术,说个方法。抛砖引玉。
将任意多边形区域内染色,然后看哪个点是否被染色了。
刚看问题,感觉挺简单,确实这个问题是不容易的,楼上的正解。
查了下图形学的书,成熟算法有好几个,边填充,种子填充都有,没有现成的代码,劝楼主找个图形学的书,仔细看下算法就知道了。
MFC里有CRgn类的方法PtInRegion来判定,不知道API是不是有现成的函数。
API之中有,刚刚查到
BOOL PtInRegion(
HRGN hrgn, // handle of region
int X, // x-coordinate of point
int Y // y-coordinate of point
);
具体用法,自己研究下了。