c++(1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法; (2)定义一个圆形类,其属性包括圆心和半径; (3)创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果。
时间: 2024-09-06 15:07:27 浏览: 66
读取点的坐标,计算方位角和距离并输出
以下是使用C++语言实现您提出的需求的代码示例:
```cpp
#include <iostream>
#include <cmath>
// 定义点类
class Point {
private:
double x, y;
public:
Point(double x, double y) : x(x), y(y) {}
double getX() const { return x; }
double getY() const { return y; }
// 计算两个点之间的距离
static double distance(const Point& p1, const Point& p2) {
return std::sqrt(std::pow(p2.getX() - p1.getX(), 2) + std::pow(p2.getY() - p1.getY(), 2));
}
};
// 定义圆形类
class Circle {
private:
Point center;
double radius;
public:
Circle(const Point& center, double radius) : center(center), radius(radius) {}
Point getCenter() const { return center; }
double getRadius() const { return radius; }
// 判断两个圆是否相交
bool isIntersect(const Circle& other) const {
double distanceBetweenCenters = Point::distance(center, other.getCenter());
return distanceBetweenCenters < (radius + other.getRadius());
}
};
int main() {
double x1, y1, x2, y2, r1, r2;
// 获取第一个圆的信息
std::cout << "请输入第一个圆的圆心坐标和半径:" << std::endl;
std::cin >> x1 >> y1 >> r1;
Circle circle1(Point(x1, y1), r1);
// 获取第二个圆的信息
std::cout << "请输入第二个圆的圆心坐标和半径:" << std::endl;
std::cin >> x2 >> y2 >> r2;
Circle circle2(Point(x2, y2), r2);
// 判断两个圆是否相交
if (circle1.isIntersect(circle2)) {
std::cout << "两个圆相交。" << std::endl;
} else {
std::cout << "两个圆不相交。" << std::endl;
}
return 0;
}
```
这段代码定义了一个点类和一个圆形类,并在圆形类中提供了判断两个圆是否相交的方法。`main` 函数中,程序会提示用户输入两个圆形的圆心坐标和半径,然后创建两个圆形对象并判断它们是否相交。
阅读全文