我有一个算法可以找到一个点是否在给定的多边形中:

 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/

10-10 17:48