使用全局函数判断:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Point
{
public :
void setX(int fx)
{
x = fx;
}
int getX()
{
return x;
}
void setY(int fy)
{
y = fy;
}
int getY()
{
return y;
}
private:
int x;
int y;
};
class circle
{
public:
int getR()
{
return r;
}
void setR(int fr)
{
r = fr;
}
Point getPoint()
{
return p;
}
void setPoint(Point fp)
{
p = fp;
}
private:
int r;
Point p;
};
//判断点和圆的关系
void isIncircle(circle c,Point p)
{
int distance2 = c.getR() * c.getR();
int distance = (c.getPoint().getX() - p.getX()) * (c.getPoint().getX() - p.getX()) + (c.getPoint().getY() - p.getY()) * (c.getPoint().getY() - p.getY());
if (distance == distance2)
{
cout << "点在圆上" << endl;
}
else if (distance < distance2)
{
cout << "点在圆内" << endl;
}
else if (distance > distance2)
{
cout << "点在圆外" << endl;
/*cout << "圆的半径 = " << c.getR() << endl;
cout << "圆的坐标 = " << c.getPoint().getX()<<","<< c.getPoint().getY() << endl;
cout << "点的坐标 = " << p.getX() << "," << p.getY() << endl;*/
}
}
void test01()
{
Point p;
p.setX(10);
p.setY(11);
circle c;
Point pCenter;
pCenter.setX(10);
pCenter.setY(0);
c.setPoint(pCenter);
c.setR(10);
isIncircle(c, p);
}
int main()
{
test01();
return 0;
}
使用类中的函数判断:
//上面的圆中的点p因为冲突改成了P。
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Point
{
public :
void setX(int fx)
{
x = fx;
}
int getX()
{
return x;
}
void setY(int fy)
{
y = fy;
}
int getY()
{
return y;
}
private:
int x;
int y;
};
class circle
{
public:
int getR()
{
return r;
}
void setR(int fr)
{
r = fr;
}
Point getPoint()
{
return P;
}
void setPoint(Point fp)
{
P = fp;
}
void isIncircle(Point p)
{
int distance2 = r* r;
int distance = (P.getX() - p.getX()) * (P.getX() - p.getX()) + (P.getY() - p.getY()) * (P.getY() - p.getY());
if (distance == distance2)
{
cout << "成员函数判断:点在圆上" << endl;
}
else if (distance < distance2)
{
cout << "成员函数判断:点在圆内" << endl;
}
else if (distance > distance2)
{
cout << "成员函数判断:点在圆外" << endl;
/*cout << "圆的半径 = " << c.getR() << endl;
cout << "圆的坐标 = " << c.getPoint().getX()<<","<< c.getPoint().getY() << endl;
cout << "点的坐标 = " << p.getX() << "," << p.getY() << endl;*/
}
}
private:
int r;
Point P;
};
//判断点和圆的关系
void test01()
{
Point p;
p.setX(10);
p.setY(11);
circle c;
Point pCenter;
pCenter.setX(10);
pCenter.setY(0);
c.setPoint(pCenter);
c.setR(10);
c.isIncircle(p);
}
int main()
{
test01();
return 0;
}