关于#c++#的问题:假如线段的一端坐标(5,11),另外一端坐标(9,15),输出该线段长度,Length2=△x2+△y2(开发工具-visualstudio)

假如线段的一端坐标(5,11),另外一端坐标(9,15),输出该线段长度,Length2=△x2+△y2
。定义一个线段类Line,具备线段起点横坐标、纵坐标,终点横坐标、纵坐标等数据成员,并实现求线段长度,求线段斜率成员函数,并通过main主函数进行该类对象的测试及相关信息的输出。

根据题目给出的坐标,可以先求出该线段的两个端点的横坐标和纵坐标的差值,即:


dx = 9 - 5 = 4
dy = 15 - 11 = 4

然后根据勾股定理求出线段长度:


Length = sqrt(dx^2 + dy^2) = sqrt(4^2 + 4^2) = sqrt(32)

因此,该线段的长度为 Length = sqrt(32)。

接下来,我们可以定义一个 Line 类来表示该线段,其中包含线段的起点和终点坐标,并提供求线段长度和斜率的成员函数。


#include <iostream>
#include <cmath>

using namespace std;

class Line {
public:
    Line(int x1, int y1, int x2, int y2) {
        // 构造函数,初始化起点和终点坐标
        x1_ = x1;
        y1_ = y1;
        x2_ = x2;
        y2_ = y2;
    }

    double length() const {
        // 求线段长度
        int dx = x2_ - x1_;
        int dy = y2_ - y1_;
        return sqrt(dx * dx + dy * dy);
    }

    double slope() const {
        // 求线段斜率
        int dx = x2_ - x1_;
        int dy = y2_ - y1_;
        return dy / (double)dx;
    }

private:
    int x1_, y1_;  // 起点坐标
    int x2_, y2_;  // 终点坐标
};

int main() {
    // 创建一个线段对象
    Line line(5, 11, 9, 15);

    // 输出线段长度和斜率
    cout << "Length: " << line.length() << endl;
    cout << "Slope: " << line.slope() << endl;

    return 0;
}

输出结果为:


Length: 2.82843
Slope: 1

注意,在求斜率时需要将 dx 或 dy 转换为浮点型,否则会得到一个整数结果。
回答不易,望采纳!!!