C++写程序,关于点与圆与位置关系: 1)定义点 (point)类,包含点的坐标x和y;2)定义一个圆(circel)类,包含圆心(点类的对象)和半径; 3)设计函数实现计算圆的面积、 4) 设计函数对于已知一点和一个圆,判断该点在圆内\外\上
时间: 2024-12-16 16:16:11 浏览: 13
在C++中,你可以按照以下步骤定义点和圆类,并实现它们之间的关系:
首先,我们定义一个`Point`类,表示二维空间中的一个点:
```cpp
class Point {
public:
double x, y; // 点的坐标
Point(double x = 0.0, double y = 0.0) : x(x), y(y) {}
};
```
接着,我们定义一个`Circle`类,它有一个`Point`类型的成员变量表示圆心,以及一个半径:
```cpp
class Circle {
private:
Point center; // 圆心
double radius; // 半径
public:
Circle(Point center, double radius) : center(center), radius(radius) {}
// 计算圆的面积
double getArea() const {
return M_PI * pow(radius, 2);
}
// 判断点与圆的位置关系
enum class Position { INSIDE, ON_BORDER, OUTSIDE };
Position pointInCircle(const Point &p) const {
double distance = sqrt(pow(p.x - center.x, 2) + pow(p.y - center.y, 2));
if (distance < radius)
return Position::INSIDE;
else if (distance == radius)
return Position::ON_BORDER;
else
return Position::OUTSIDE;
}
};
```
这里我们使用了`M_PI`代表π(通常在头文件`<cmath>`中定义),并使用`sqrt()`函数计算两点间的距离。`Position`枚举用于表示点和圆的关系。
现在你可以创建`Circle`对象,并通过其成员函数来判断点的位置关系,例如:
```cpp
int main() {
Point p(3, 4); // 定义一个点
Circle c(Point(0, 0), 5); // 定义一个原点为(0, 0),半径为5的圆
if (c.pointInCircle(p) == Circle::Position::INSIDE) {
std::cout << "点p在圆内" << std::endl;
} else if (c.pointInCircle(p) == Circle::Position::ON_BORDER) {
std::cout << "点p在圆上" << std::endl;
} else {
std::cout << "点p在圆外" << std::endl;
}
return 0;
}
```
阅读全文