要通過C++的Point
類實現幾何計算,首先需要定義一個表示點的簡單類,包含x和y坐標。然后,可以添加一些成員函數來執行基本的幾何運算,例如計算兩點之間的距離、中點、判斷點是否在線段上等。
以下是一個簡單的示例:
#include <iostream>
#include <cmath>
class Point {
public:
// 構造函數
Point(double x = 0, double y = 0) : x_(x), y_(y) {}
// 獲取x坐標
double getX() const {
return x_;
}
// 獲取y坐標
double getY() const {
return y_;
}
// 計算兩點之間的距離
double distance(const Point& other) const {
double dx = x_ - other.x_;
double dy = y_ - other.y_;
return std::sqrt(dx * dx + dy * dy);
}
// 計算兩點的中點
Point midpoint(const Point& other) const {
double mx = (x_ + other.x_) / 2;
double my = (y_ + other.y_) / 2;
return Point(mx, my);
}
// 判斷點是否在線段上(假設線段的兩個端點是p1和p2)
bool isOnSegment(const Point& p1, const Point& p2) const {
double minX = std::min(p1.x_, p2.x_);
double maxX = std::max(p1.x_, p2.x_);
double minY = std::min(p1.y_, p2.y_);
double maxY = std::max(p1.y_, p2.y_);
if (x_ >= minX && x_ <= maxX && y_ >= minY && y_ <= maxY) {
return true;
}
return false;
}
private:
double x_;
double y_;
};
int main() {
Point p1(0, 0);
Point p2(3, 4);
Point p3(1, 1);
std::cout << "Distance between p1 and p2: " << p1.distance(p2) << std::endl;
std::cout << "Midpoint between p1 and p2: (" << p1.midpoint(p2).getX() << ", " << p1.midpoint(p2).getY() << ")" << std::endl;
std::cout << "Is p3 on segment p1-p2? " << (p1.isOnSegment(p1, p2) ? "Yes" : "No") << std::endl;
return 0;
}
這個示例中的Point
類提供了基本的幾何計算功能。你可以根據需要擴展此類以支持更多的幾何運算。