Если вы хотите узнать, какие объекты находятся в «зеленой зоне» ...
Если вы знаете размер прямоугольника, вы можете вычислить вершины интересующего вас многоугольника (origin, P1, P2 и видимые углы прямоугольника), затем вы можете перебрать свои объекты, чтобы найти, которые находятся внутри, используя точки при обнаружении многоугольника.
Рэндольф Франклин, например.Возвращает 1 для внутренних точек и 0 для внешних точек ...
int pnpoly(int npol, float *xp, float *yp, float x, float y)
{
int i, j, c = 0;
for (i = 0, j = npol-1; i < npol; 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;
}