1.创建圆类和点类
2.核心:圆类里面的圆心是点类
#include<iostream>
using namespace std;
class Point//创建点类
{
public:
void setPoint_x(int x)
{
P_x = x;
}
int getPoint_x()
{
return P_x;
}
void setPoint_y(int y)
{
P_y = y;
}
int getPoint_y()
{
return P_y;
}
private:
int P_x;
int P_y;
};
class Circle//创建圆类
{
public:
void setC_r(int r)
{
C_r = r;
}
int getC_r()
{
return C_r;
}
void setCenter(Point Center)//传入参数类型为点类
{
C_center = Center;
}
Point getCenter()//返回类型为点类
{
return C_center;
}
private:
int C_r;//半径
Point C_center;//圆心为点类
};
void inCircle(Circle &c1, Point &m)//判断点在园的位置
{
int distance = (c1.getCenter().getPoint_x() - m.getPoint_x()) * (c1.getCenter().getPoint_x() - m.getPoint_x()) + (c1.getCenter().getPoint_y() - m.getPoint_y()) * (c1.getCenter().getPoint_y() - m.getPoint_y());//距离的平方
int r = c1.getC_r();
if ( r*r== distance)//与r的平方比较
{
cout << "点在圆上" << endl;
}
if (r*r < distance)
{
cout << "点在圆外" << endl;
}
if (r * r > distance)
{
cout << "点在圆内" << endl;
}
}
int main()
{
Circle c1;
c1.setC_r(10);
Point center;//创建点类圆心
center.setPoint_x(10);//圆心赋值
center.setPoint_y(0);//圆心赋值
c1.setCenter(center);//传入c1圆类
Point m;
m.setPoint_x(10);//点赋值
m.setPoint_y(9);//点赋值
inCircle(c1, m);
system("pause");
return 0;
}