C++ --类案例-判断点与圆的关系

索引:

1.通过类创建一个圆Cirle,包括它的半径,圆心。其中圆心的点的坐标是通过再创建一个Point类来获取。

2.再自定义一个函数通过判断点与圆心的距离来判断点与圆的关系

参考代码:

#include 
#include 
using namespace std;

//点
typedef class Point
{
private:
	int m_X;
	int m_Y;
public:
   //设置x
	void set_x(int x)
	{
		m_X = x;
	}
   //获取x
	int get_x()
	{
		return m_X;
   }
   //设置y
	void set_y(int y)
	{
		m_Y = y;
   }
   //获取y
	int get_y()
	{
		return m_Y;
	   }
}Point;
//创建圆
typedef class Circle
{
public:
	//设置半径
	void set_R(int r)
	{
		m_R = r;
	}
	//获取半径
	int get_r()
	{
		return m_R;
	}
	//设置圆心
	void set_center(Point center)
	{
		m_center = center;
	}
	//获取圆心
	Point get_center()
	{
		return m_center;
	}
private:
	int m_R;//半径
	Point m_center;//圆心,//通过此处我们可以直到类可以作为另一个类的数据类型来再另一个类中定义变量
}Circle;
//判断点与圆的关系
void justment(Circle& c, Point& p)
{
	//计算两点之间距离的平方
	int distance =
		(c.get_center().get_x() - p.get_x()) * (c.get_center().get_x() - p.get_x()) +
		(c.get_center().get_y() - p.get_y()) * (c.get_center().get_y() - p.get_y());
	//计算半径的平方
	int rdistance =(c.get_r()) * (c.get_r());
	if (distance==rdistance)
	{
		cout << "点在圆上" << endl;
	}
	else if (distance>rdistance)
	{
		cout << "点在圆外" << endl;
	}
	else
	{
		cout << "点在圆内" << endl;
	}
}
int main()
{
	Point center;
	center.set_x(10);
	center.set_y(0);

	Circle cirle;
	cirle.set_R(10);
	cirle.set_center(center);
	//创建点
	Point p;
	p.set_x(10), p.set_y(11);
	justment(cirle, p);
	return 0;
}   

你可能感兴趣的:(C++,c++,算法,学习方法)