判断点与圆的位置关系(点在圆内,点在圆外)

时间:2021-09-22 10:41:31
//定义一个Point类,其属性包括点的坐标,提供计算
//两点之间距离的方法
//定义一个Circle类,其属性包括圆心和半径
//创建两个圆形对象,提示用户输入圆心坐标和半径,
//判断两个圆是否相交并输出结果
#include<iostream>
using namespace std;
class Point
{
public:
	void setPointt(int _x1, int _y1)
	{
		x1 = _x1;
		y1 = _y1;
	}
	int getX1()
	{
		return x1;
	}
	int getY1()
	{
		return y1;
	}

private:
	int x1;
	int y1;
};
class Circle
{
public:
	void setCircle(int _r, int _x0, int _y0)
	{
		r = _r;
		x0 = _x0;
		y0 = _y0;
	}

	//类做函数参数最好用引用
	//在圆内返回1,不在圆内返回0
	//在成员函数内可以使用c1的私有属性
	int judge(Point &p)
	{
		int dd;
		dd = (p.getX1() - x0)*(p.getX1() - x0) + (p.getY1() - y0)*(p.getY1() - y0);
		if (dd < r*r)
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}

private:
	int r;
	int x0;
	int y0;

};



int main02()
{
	Circle c1;
	Point p1;
	int tag;
	c1.setCircle(2, 3, 3);
	p1.setPointt(7, 7);
	//点在圆内为1 不在圆内为0
	tag=c1.judge(p1);
	if (tag == 1)
	{
		cout << "在圆内" << endl;
	}
	else
	{
		cout << "在圆外" << endl;
	}
	system("pause");
	return 0;
}