#include
#include
class Point
{
private:
\x05double m_x;
\x05double m_y;\x05
public:
\x05Point()
\x05{
\x05\x05m_x = 0.0;
\x05\x05m_y = 0.0;
\x05}
\x05
\x05Point(double x,double y)
\x05{
\x05\x05m_x = x;
\x05\x05m_y = y;\x05\x05
\x05}
\x05
\x05~Point()
\x05{
\x05\x05
\x05}
\x05
\x05double r()
\x05{
\x05\x05return sqrt(m_x*m_x + m_y*m_y);
\x05}
\x05
\x05double theta()
\x05{
\x05\x05return atan2(m_y,m_x);
\x05}
\x05
\x05double distance(const Point &p)
\x05{
\x05\x05double dx = p.get_x() - m_x;
\x05\x05double dy = p.get_y() - m_y;
\x05\x05
\x05\x05return (dx*dx + dy*dy);
\x05}
\x05
\x05Point &relative(const Point &p)
\x05{
\x05\x05double x = m_x - p.get_x();
\x05\x05double y = m_y - p.get_y();
\x05\x05
\x05\x05Point point(x,y);
\x05\x05
\x05\x05return point;
\x05}
\x05
\x05int is_above_left(const Point &p)
\x05{
\x05\x05if(m_x < p.get_x() && m_y > p.get_y())
\x05\x05{
\x05\x05\x05return 1;
\x05\x05}
\x05\x05
\x05\x05return 0;
\x05}
\x05
\x05void set_x(double x)
\x05{
\x05\x05m_x = x;
\x05}
\x05
\x05void set_y(double y)
\x05{
\x05\x05m_y = y;
\x05}
\x05
\x05double get_x() const
\x05{
\x05\x05return m_x;
\x05}
\x05
\x05double get_y() const
\x05{
\x05\x05return m_y;
\x05}
};