//判断一个点是否在圆外、圆上、圆内
#include <iostream>
using namespace std;
//点类
class Point{
public:
void set_Point_position(int x, int y)
{
m_X = x;
m_Y = y;
}
int get_Point_X()
{
return m_X;
}
int get_Point_Y()
{
return m_Y;
}
private:
int m_X;
int m_Y;
};
//圆类
class Cicle{
public:
//设置圆的半径
void set_Cicle_R(int r)
{
m_r = r;
}
//设置圆心位置
void set_Cicle_Centor(Point &pnt)
{
m_pnt.set_Point_position(pnt.get_Point_X(),pnt.get_Point_Y());
}
//计算点到圆心的距离并与圆半径进行比较
void point_cicle_relation(Point &pnt)
{
int pnt_x=pnt.get_Point_X();
int pnt_y=pnt.get_Point_Y();
int mpnt_x = m_pnt.get_Point_X();
int mpnt_y = m_pnt.get_Point_Y();
int mcicle_square=m_r*m_r;
cout<<"pnt_x:"<<pnt_x<<","<<"pnt_y:"<<pnt_y<<endl;
cout<<"mpnt_x:"<<mpnt_x<<","<<"mpnt_y:"<<mpnt_y<<endl;
int len = (pnt_x - mpnt_x)*(pnt_x - mpnt_x) + (pnt_y - mpnt_y)* (pnt_y - mpnt_y);
cout<<"point to centor len:"<<len<<endl;
cout<<"cicle_square:"<<mcicle_square<<endl;
if (mcicle_square == len)
{
cout<<"point is on side of cicle"<<endl;
}
if (mcicle_square < len)
{
cout<<"point is out side of cicle"<<endl;
}
if (mcicle_square > len)
{
cout<<"point is in side of cicle"<<endl;
}
}
private:
//圆半径
int m_r;
//点对象作为数据成员
Point m_pnt;
};
int main()
{
//圆心
Point pnt_centor;
pnt_centor.set_Point_position(5,5);
Cicle cl;
cl.set_Cicle_R(5);
cl.set_Cicle_Centor(pnt_centor);
//点
Point pnt_tmp;
pnt_tmp.set_Point_position(10,5);
cl.point_cicle_relation(pnt_tmp);
return 0;
}