private function _theta(PointInterface $a, PointInterface $b)
    {
        list($x1, $y1) = $a->getCoordinates();
        list($x2, $y2) = $b->getCoordinates();
        return atan2($y2-$y1, $x2 - $x1) + 2 * M_PI;
    }
private function _theta(PointInterface $a, PointInterface $b)
    {
        list($x1, $y1) = $a->getCoordinates();
        list($x2, $y2) = $b->getCoordinates();
        return atan2($y2-$y1, $x2 - $x1) + 2 * M_PI;
    }
private function _theta ( PointInterface $ a , PointInterface $ b ) { list ( $ x1 , $ y1 ) = $ a -> getCoordinates ( ) ; list ( $ x2 , $ y2 ) = $ b -> getCoordinates ( ) ; return atan2 ( $ y2 - $ y1 , $ x2 - $ x1 ) + 2 * M_PI ; }
Calculate the angle, and add 2pi to protect against underflow.

@param PointInterface $a Base coordinate point.
@param PointInterface $b Subject coordinate point.

@return double None negative radian.
Calculate the angle and add 2pi to protect against underflow .