91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何通過C++的point類實現幾何計算

c++
小樊
83
2024-09-25 01:54:17
欄目: 編程語言

要通過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類提供了基本的幾何計算功能。你可以根據需要擴展此類以支持更多的幾何運算。

0
沙田区| 赤水市| 新巴尔虎右旗| 保亭| 临猗县| 昌吉市| 安仁县| 栖霞市| 邢台县| 那曲县| 松滋市| 阜城县| 化州市| 抚远县| 聂荣县| 翁牛特旗| 云阳县| 原平市| 竹山县| 玉树县| 寻乌县| 忻城县| 岳普湖县| 长海县| 普兰店市| 寿光市| 简阳市| 金沙县| 沙坪坝区| 广汉市| 平舆县| 逊克县| 白银市| 永德县| 广德县| 抚松县| 沾益县| 吉林省| 香格里拉县| 汕尾市| 兴和县|