Помогите перевести код алгоритма "Попадание точки в многоугольник" (C++) на PHP
Источник: http://users.livejournal.com/_winnie/237888.html
Заранее большое спасибо.
Источник: http://users.livejournal.com/_winnie/237888.html
Заранее большое спасибо.
Код:
bool IsPointInside(Array<const Point2f> polygon, Point2f point)
{
if (polygon.size <= 1)
return false;
int intersections_num = 0;
int prev = polygon.size - 1;
bool prev_under = polygon[prev].y < point.y;
for (int i = 0; i < polygon.size; ++i)
{
bool cur_under = polygon[i].y < point.y;
Point2f a = polygon[prev] - point;
Point2f b = polygon[i] - point;
float t = (a.x*(b.y - a.y) - a.y*(b.x - a.x));
if (cur_under && !prev_under)
{
if (t > 0)
intersections_num += 1;
}
if (!cur_under && prev_under)
{
if (t < 0)
intersections_num += 1;
}
prev = i;
prev_under = cur_under;
}
return (intersections_num&1) != 0;
}