c++完成创建一个矩形类,矩形的边平行于坐标轴。矩形的属性用其左下角坐标、长度和宽度描述。 从键盘输入两个矩形参数(注意输入提示信息),创建两个矩形对象,判断两个矩形是否相交?求出相交部分的面积。
时间: 2023-10-29 18:20:36 浏览: 88
C++判断矩形相交的方法
5星 · 资源好评率100%
好的,以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
class Rectangle {
private:
double x; // 左下角横坐标
double y; // 左下角纵坐标
double w; // 矩形宽度
double h; // 矩形高度
public:
void set(double xx, double yy, double ww, double hh) {
x = xx;
y = yy;
w = ww;
h = hh;
}
double getX() {
return x;
}
double getY() {
return y;
}
double getW() {
return w;
}
double getH() {
return h;
}
double getArea() {
return w * h;
}
bool isOverlap(Rectangle r) {
if (x + w <= r.x || r.x + r.w <= x || y + h <= r.y || r.y + r.h <= y)
return false;
return true;
}
double overlapArea(Rectangle r) {
double dx = min(x + w, r.x + r.w) - max(x, r.x);
double dy = min(y + h, r.y + r.h) - max(y, r.y);
return dx * dy;
}
};
int main() {
Rectangle r1, r2;
double x, y, w, h;
cout << "请输入第一个矩形的左下角横坐标、纵坐标、宽度、高度:" << endl;
cin >> x >> y >> w >> h;
r1.set(x, y, w, h);
cout << "请输入第二个矩形的左下角横坐标、纵坐标、宽度、高度:" << endl;
cin >> x >> y >> w >> h;
r2.set(x, y, w, h);
if (r1.isOverlap(r2)) {
double area = r1.overlapArea(r2);
cout << "两个矩形相交,相交部分面积为:" << area << endl;
} else {
cout << "两个矩形不相交" << endl;
}
return 0;
}
```
在程序中,我们创建了一个Rectangle类来表示矩形,包含了矩形的左下角坐标、宽度和高度等属性,还有判断两个矩形是否相交、求相交部分面积等方法。在主函数中,我们按照要求从键盘输入两个矩形的参数,创建两个矩形对象,然后调用Rectangle类的方法判断是否相交以及求相交部分面积。最后输出结果。
阅读全文