假如线段的一端坐标(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 转换为浮点型,否则会得到一个整数结果。
回答不易,望采纳!!!