在一个二维坐标系中,存在两个底边与 x 轴重合的矩形(上边平行于 x 轴,下边与 x 轴重 合,左右边平行于 y 轴)。如图所示,每个矩形以(x1, x2, h)的形式表示,其中(x1, x2)为左右两条边的横坐标,h(h>=0)为矩形高度。求两个矩形的重合面积。 输入: 通过 csv 文件给出多组矩形信息,每一行包含 6 个数字(均为整数),前 3 个数字代表第 一个矩形的(x1, x2, h),后 3 个数字代表第二个矩形的(x1, x2, h)。csv 文件示例: rectangles.csv 1,5,3,2,6,2 1,5,3,15,16,2 -15,-1,3,-6,-2,8 注意:输入数据格式正确,不需要额外校验。 输出: 计算每一组矩形的重合面积(若不重合或仅边重合则面积为 0),将结果输出为一个列 表。输出示例(对应上述的输入示例): [6, 0, 12] 请以下面的代码框架完成上述任务(填写 Todo 后的内容即可): # Todo: import necessary libraries def calcArea(filepath): results = [] # Todo: read the file line by line, calcucate overlaped area, and add each result into the list 'results' return results print(calcArea('rectangles.csv'))
时间: 2023-05-17 14:03:54 浏览: 208
```python
import csv
def overlap_area(rect1, rect2):
# Todo: 计算两个矩形的重合面积
pass
def main():
with open('rectangles.csv', 'r') as f:
reader = csv.reader(f)
result = []
for row in reader:
rect1 = tuple(map(int, row[:3]))
rect2 = tuple(map(int, row[3:]))
area = overlap_area(rect1, rect2)
result.append(area)
print(result)
if __name__ == '__main__':
main()
```
阅读全文