点和圆的关系【设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。】

这篇博客介绍了如何使用C++编程设计一个圆形类(Circle)和点类(Point),通过计算点到圆心的距离来判断点相对于圆的位置,包括在圆内、圆上或圆外的情况。示例代码中包含了输入点和圆的坐标以及半径,然后调用相应方法进行位置判断。
摘要由CSDN通过智能技术生成

题目描述

设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。

源码

#include<iostream>
using namespace std;
//一个用来求解距离的平方的全局函数
int  distance(int a, int b, int c, int d) {
	return (abs(a - c) * abs(a - c) + abs(b - d) * abs(b - d));
}
class point {
public:
	void setX(int x) {
		p_x = x;
	}//写入点的X坐标
	void setY(int y) {
		p_y = y;
	}//写入点的Y坐标
	int getX() {
		return p_x;
	}//因为我们已经规定了p.p_x从外部是不能访问的,所以必须要定义一个这样的函数来访问p的x坐标
	int getY() {
		return p_y;
	}
private:
	int p_x;
	int p_y;
}p;
class circle {
public:
	void setR(int r) {
		c_r = r;//写入圆的半径
	}
	void setCenter(point center) {
		c_center = center;//设置圆的圆心
	}
	int getR() {
		return c_r;
	}
	void judgePos(point&p) {
		int a = distance(p.getX(), p.getY(), c_center.getX(), c_center.getY());
		if (a > c.getR() * c.getR()) {
			cout<<"点在圆外";
		}
		else if (a== c.getR() * c.getR())
			cout<<"点在圆上";
		else
			cout<<"点在圆内";
	}//判断点和圆的位置关系的成员函数
	//记得加引用记号
private:
	int c_r;//半径
	point c_center;//圆心
}c;
int main() {
	//先输入点的x,y坐标,再输入圆心的x,y坐标
	//最后输入圆的半径
	int x1, y1, x2, y2, r;
	cin >> x1 >> y1 >> x2 >> y2 >> r;
	p.setX(x1);
	p.setY(y1);
	point Center;
	Center.setX(x2);
	Center.setY(y2);
	c.setCenter(Center);
	c.setR(r);
	c.judgePos(p);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Grausam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值