#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class Point
{
private:
int m_X;
int m_Y;
public:
void setX(int x)
{
m_X = x;
}
int getX()
{
return m_X;
}
void setY(int y)
{
m_Y = y;
}
int getY()
{
return m_Y;
}
};
class Circle
{
private:
int m_R;
Point m_Xin;
public:
void setR(int r)
{
m_R = r;
}
int getR()
{
return m_R;
}
void setXIN(Point xin)
{
m_Xin = xin;
}
Point getXIN()
{
return m_Xin;
}
};
void isin(Point& p, Circle& c)
{
//距离的平方
int discence =
((p.getX() - c.getXIN().getX()) * (p.getX() - c.getXIN().getX()) +
(p.getY() - c.getXIN().getY()) * (p.getY() - c.getXIN().getY()));
//半径的平方
int rDiscence = (c.getR() * c.getR());
if (discence == rDiscence)
{
cout << "点在圆上" << endl;
}
else if (discence > rDiscence)
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
int main()
{
//创建点
Circle c1;
c1.setR(10);
Point center;
center.setX(10);
center.setY(0);
c1.setXIN(center);
//创建圆
Point p1;
p1.setX(10);
p1.setY(10);
isin(p1,c1);
return 0;
}
利用全局函数判断点和圆的关系,点在圆上,点在圆外,点在圆内,利用点到圆心的距离与圆的半径做比较。
详细讲解视频请观看B站黑马程序员讲解视频。