'Return True if p is enclosed by (is inside of) self.
Notes
Being on the border of self is considered False.
The general Polygon.encloses_point method is called only if
a point is not within or beyond the incircle or circumcircle,
respectively.
Parameters
p : Point
Returns
encloses_point : True, False or None
See Also
sympy.geometry.ellipse.Ellipse.encloses_point
Examples
>>> from sympy import RegularPolygon, S, Point, Symbol
>>> p = RegularPolygon((0, 0), 3, 4)
>>> p.encloses_point(Point(0, 0))
True
>>> r, R = p.inradius, p.circumradius
>>> p.encloses_point(Point((r + R)/2, 0))
True
>>> p.encloses_point(Point(R/2, R/2 + (R - r)/10))
False
>>> t = Symbol(\'t\', real=True)
>>> p.encloses_point(p.arbitrary_point().subs(t, S.Half))
False
>>> p.encloses_point(Point(5, 5))
False'

def encloses_point(self, p):

    c = self.center
    d = Segment(c, p).length
    if (d >= self.radius):
        return False
    elif (d < self.inradius):
        return True
    else:
        return Polygon.encloses_point(self, p)
