我有一个算法可以找到一个点是否在给定的多边形中:
int CGlEngineFunctions::PointInPoly(int npts, float *xp, float *yp, float x, float y)
{
int i, j, c = 0;
for (i = 0, j = npts-1; i < npts; j = i++) {
if ((((yp[i] <= y) && (y < yp[j])) ||
((yp[j] <= y) && (y < yp[i]))) &&
(x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
c = !c;
}
return c;
}
既然如此,我怎么能让它检查它是否在一个由ptopleft和pbottomright定义的矩形内,而不是在一个点内?
谢谢
基本上你知道如何在Adobe Illustrator中拖动来选择属于选择矩形的所有对象吗我是认真的。–
最佳答案
你不能只找到多边形的点之间的最小和最大x和y值,并检查是否有任何值在矩形的维度之外?
关于c++ - 矩形算法中的多边形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3453460/