设计一个圆形类(Circle)和一个点类(Point),计算点和圆的关系。
(方便测试,令圆心坐标(10,0),点坐标为(10,10))
#include <iostream>
using namespace std;
class Point{
public:
void setX(int x){
_X=x;
}
int getX(){
return _X;
}
void setY(int y){
_X=y;
}
int getY(){
return _Y;
}
private:
int _X;
int _Y;
};
class Circle{
public:
void setR(int r){
m_R=r;
}
int getR(){
return m_R;
}
void setCenter(Point Center){
m_Center=Center;
}
Point getCenter(){
return m_Center;
}
private:
int m_R;
Point m_Center;
};
void isIncircle(Circle &c,Point &p){
int distance=(c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+(c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
int Rdistance=c.getR()*c.getR();
if(distance==Rdistance){
cout<<"点在圆上"<<endl;
}
else if(distance>Rdistance){
cout<<"点在圆外"<<endl;
}
else{
cout<<"点在圆内"<<endl;
}
}
int main(){
//创建圆
Circle c;
c.setR(10);
Point Center;
Center.setX(10);
Center.setY(0);
c.setCenter(Center);
//创建点
Point p;
p.setX(10);
p.setY(10);
isIncircle(c,p);
}
运行结果: