Quantcast
Channel: Сообщество PHP DevelStudio - среда разработки программ
Viewing all articles
Browse latest Browse all 6336

Попадание точки в многоугольник (помогите перевести код на PHP)

$
0
0
Помогите перевести код алгоритма "Попадание точки в многоугольник" (C++) на PHP

Источник: 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;
}


Viewing all articles
Browse latest Browse all 6336

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>