C++类的案例(二)

这篇博客介绍了如何使用C++编程实现点与圆的位置关系判断,包括点在圆上、圆外和圆内的判断。通过创建Circle和Point类,定义了圆的半径和圆心坐标,并提供了相应的设置和获取方法。isInCircle函数计算点到圆心的距离,根据距离与半径的关系确定点的位置。示例代码展示了如何实例化对象并调用这些方法进行判断。

图片摘自:

黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibiliicon-default.png?t=L892https://www.bilibili.com/video/BV1et411b73Z?p=105

 点和圆的关系就三种,圆上,圆外,圆内

首先创建一个圆类

class Circle
{
public:
	void setR(int r)
	{
		m_R = r;
	}
	int getR()
	{
		return m_R;
	}
	void setCenter(Point center)
	{
		m_Center = center;
	}
	Point getCenter()      //这块为什么返回的不是int类型呢  下面说了这个圆心的类型是圆类
	{                      //就像你定义一个int的东西  ,你准备拿char来接收
		return m_Center;   //实在理解不了的直接理解为结构体就好  类似于结构体定义的数据类型
	}
private:
	int m_R;

	Point m_Center;       //圆心的类型是圆类
};

创建圆心类

class Point            //属性一般私有  同时提供端口函数对属性操作
{
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;
	}

private:
	int m_X;
	int m_Y;
};

判断函数:

void isInCircle(Circle &c, Point &p)
{
	int distance =              //根号操作不方便   直接对俩边都进行平方   根号就无了
		(c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) +
		(c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());
	int rDistance = c.getR() * c.getR();

	if (distance == rDistance)
	{
		cout << "点在圆上" << endl;
	}
	else if (distance > rDistance)
	{
		cout << "点在圆外" << endl;
	}
	else
	{
		cout << "点在圆内" << endl;
	}
}

附上主函数:

int main()
{

	Circle c;
	c.setR(10);             //定义半径
	Point center;
	center.setX(0);         //定义圆心
	center.setY(0);
	c.setCenter(center);

	Point p;
	p.setX(10);             //定义需要计算的点
	p.setY(0);


	isInCircle(c,p);

	system("pause");
	return 0;
}

开拓视野,冲破艰险,看见世界,身临其境,贴近彼此,感受生活,这就是生活的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值