设计圆类和点类,判断点和圆的关系
方法如下:
#include<iostream>
using namespace std;
class point
{
public:
void setx(int a)
{
m_x=a;
}
int getx()
{
return m_x;
}
void sety(int b)
{
m_y=b;
}
int gety()
{
return m_y;
}
private:
int m_x;
int m_y;
};
class circle
{
public:
void setr(int c)
{
m_r=c;
}
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;
}
}
void test01()
{
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);
}
int main()
{
test01();
return 0;
}