#include <iostream>
using namespace std;
#include <string>
//点类
class Point
{
public:
//设置X坐标
void setX(int x)
{
m_x = x;
}
//获取X坐标
int getX()
{
return m_x;
}
//设置Y坐标
void setY(int y)
{
m_y = y;
}
//获取Y坐标
int getY()
{
return m_y;
}
private:
int m_x;
int m_y;
};
//设置一个圆类Circle
class Circle
{
public:
//设置半径
void setR(int r)
{
m_R = r;
}
//获取半径
int getR()
{
return m_R;
}
//设置圆心
void setCenter(Point center)
{
m_center = center;
}
//获取圆心
Point getCenter() //m_center是Piont类的数据
{
return m_center;
}
private:
int m_R;
//在类中可以让另一个类 作为本类中的成员--与结构体相似
Point m_center;
};
//判断点和圆的关系
void isInCircle(Circle &c, Point &p)
{
if ((p.getX() - c.getCenter().getX()) * (p.getX() - c.getCenter().getX()) + (p.getY() - c.getCenter().getY()) * (p.getY() - c.getCenter().getY()) == c.getR() * c.getR())
cout << "点在圆上" << endl;
else if ((p.getX() - c.getCenter().getX()) * (p.getX() - c.getCenter().getX()) + (p.getY() - c.getCenter().getY()) * (p.getY() - c.getCenter().getY()) > c.getR() * c.getR())
cout << "点在圆外" << endl;
else
cout << "点在圆内" << endl;
}
int main()
{
//创建并设置点P1
Point P1;
P1.setX(10);
P1.setY(9);
//创建并设置点P2--圆心
Point P2;
P2.setX(10);
P2.setY(0);
//设置圆C1
Circle C1;
C1.setR(10);
C1.setCenter(P2);
isInCircle(C1, P1);
system("pause");
return 0;
}
方法2
#include <iostream>
#include <cmath>
struct Point {
double x;
double y;
};
bool isPointInsideCircle(const Point& point, const Point& center, double radius) {
double distance = std::sqrt(std::pow(point.x - center.x, 2) + std::pow(point.y - center.y, 2));
return distance < radius;
}
int main() {
Point center = {0.0, 0.0};
double radius = 5.0;
Point point = {2.0, 3.0};
if (isPointInsideCircle(point, center, radius)) {
std::cout << "The point is inside the circle." << std::endl;
} else {
std::cout << "The point is outside the circle." << std::endl;
}
return 0;
}