private bool IsPointInside(Point point)
{
var result = false;
for (int i = 0, j = _points.Length - 1; i < _points.Length; j = i++)
{
if (((_points[i].Y > point.Y) != (_points[j].Y > point.Y)) && (point.X < (_points[j].X - _points[i].X) * (point.Y - _points[i].Y) / (_points[j].Y - _points[i].Y) + _points[i].X))
result = !result;
}
return result;
}