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

溫馨提示×

能否用C++的point類實現自定義的坐標系

c++
小樊
84
2024-09-25 02:01:15
欄目: 編程語言

當然可以。首先,我們需要定義一個表示點的類(Point),然后實現一些基本的幾何操作,如向量加法、減法、標量乘法、點積和叉積等。以下是一個簡單的示例:

#include <iostream>

class Point {
public:
    double x, y;

    // 構造函數
    Point(double x = 0, double y = 0) : x(x), y(y) {}

    // 向量加法
    Point operator+(const Point& other) const {
        return Point(x + other.x, y + other.y);
    }

    // 向量減法
    Point operator-(const Point& other) const {
        return Point(x - other.x, y - other.y);
    }

    // 標量乘法
    Point operator*(double scalar) const {
        return Point(x * scalar, y * scalar);
    }

    // 點積
    double dot(const Point& other) const {
        return x * other.x + y * other.y;
    }

    // 叉積(僅適用于二維)
    double cross(const Point& other) const {
        return x * other.y - y * other.x;
    }

    // 輸出點的坐標
    friend std::ostream& operator<<(std::ostream& os, const Point& point) {
        os << "(" << point.x << ", " << point.y << ")";
        return os;
    }
};

int main() {
    Point p1(3, 4);
    Point p2(1, 2);

    Point p3 = p1 + p2;
    Point p4 = p1 - p2;
    Point p5 = p1 * 2;

    std::cout << "p1 + p2 = " << p3 << std::endl;
    std::cout << "p1 - p2 = " << p4 << std::endl;
    std::cout << "2 * p1 = " << p5 << std::endl;
    std::cout << "p1 · p2 = " << p1.dot(p2) << std::endl;
    std::cout << "p1 × p2 = " << p1.cross(p2) << std::endl;

    return 0;
}

這個簡單的示例展示了如何使用C++實現一個自定義的坐標系。你可以根據需要擴展這個類,添加更多的幾何操作和成員函數。

0
新宾| 商南县| 松滋市| 洞头县| 屏东市| 胶州市| 盐亭县| 雷波县| 普洱| 青铜峡市| 宁陕县| 南漳县| 赫章县| 峨山| 三门峡市| 昂仁县| 万荣县| 三门县| 社旗县| 隆安县| 罗江县| 洞口县| 内江市| 玉林市| 东平县| 田东县| 邹平县| 台江县| 大厂| 卢氏县| 罗甸县| 浠水县| 泽州县| 连山| 宣城市| 永新县| 平南县| 周宁县| 巍山| 沛县| 汉源县|