c++设计并实现二维坐标系下的点类point,类的每个对象有横纵坐标,为类point添加必要的计算函数(1.计算给定点到原点的距离,2.计算给定两点间的距离,3.判断给定的3个点是否可以构成一个三角形)
时间: 2024-12-12 16:30:09 浏览: 66
在C++中,我们可以创建一个名为Point的类,用于表示二维坐标系下的点,并包含必要的成员变量和函数。以下是简单的实现:
```cpp
class Point {
public:
// 构造函数,初始化横纵坐标
Point(double x = 0, double y = 0) : x_(x), y_(y) {}
// 获取和设置坐标
double getX() const { return x_; }
double getY() const { return y_; }
void setX(double x) { x_ = x; }
void setY(double y) { y_ = y; }
// 计算点到原点的距离
double distanceToOrigin() const {
return std::sqrt(x_ * x_ + y_ * y_);
}
// 计算两个点之间的距离
static double distanceBetween(const Point& p1, const Point& p2) {
double dx = p1.getX() - p2.getX();
double dy = p1.getY() - p2.getY();
return std::sqrt(dx * dx + dy * dy);
}
// 判断三个点能否构成三角形(假设不考虑自相交的情况)
bool canFormTriangle(const Point& p1, const Point& p2) const {
if (this == &p1 || this == &p2) {
return false;
}
double a = distanceBetween(*this, p1);
double b = distanceBetween(*this, p2);
double c = distanceBetween(p1, p2);
return a + b > c && a + c > b && b + c > a;
}
private:
double x_, y_; // 横纵坐标
};
```
在这个类中,`distanceToOrigin()` 方法使用勾股定理计算点到原点的距离,`distanceBetween()` 是静态方法,用于计算两个点之间的距离。`canFormTriangle()` 则通过比较任意两点到第三个点的距离是否满足构成三角形的条件(两边之和大于第三边)来进行判断。
阅读全文