Problem Description 设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点(分别为左上顶点和右下顶点)。并输出4个顶点的坐标和面积。 Input Description 输入左上顶点和右下顶点的坐标 Output Description 输出矩形的面积及四个顶点的坐标,从左上顶点开始,沿顺时针方向输出。
时间: 2024-03-15 08:44:47 浏览: 127
实现一个三维坐标的Point类。
4星 · 用户满意度95%
根据题目描述,我们需要实现一个Point类和Rectangle类,其中Rectangle类使用Point类的两个坐标点作为矩形的对角顶点。具体实现如下:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Rectangle:
def __init__(self, p1, p2):
self.p1 = p1
self.p2 = p2
def area(self):
return abs(self.p2.x - self.p1.x) * abs(self.p2.y - self.p1.y)
def vertices(self):
x1, y1 = self.p1.x, self.p1.y
x2, y2 = self.p2.x, self.p2.y
return [(x1, y1), (x2, y1), (x2, y2), (x1, y2)]
# 读入左上角和右下角的坐标
x1, y1, x2, y2 = map(int, input().split())
# 创建 Point 对象和 Rectangle 对象
p1 = Point(x1, y1)
p2 = Point(x2, y2)
rect = Rectangle(p1, p2)
# 输出面积和顶点坐标
print(rect.area())
for vertex in rect.vertices():
print(vertex[0], vertex[1])
```
输入格式为左上角和右下角的坐标,例如:
```
3 4 1 1
```
输出面积和顶点坐标,格式为:
```
6
1 4
1 1
3 1
3 4
```
其中,第一行为面积,后面每一行为一个顶点的横纵坐标。注意顶点的输出顺序是从左上角开始,沿顺时针方向输出。
阅读全文