python矩阵相交

【问题描述】

平面上有两个矩形A和B,其位置是任意的。编程求出其相交部分(如图中阴影部分)的面积。(0≤a,b≤1000)

【输入文件】从标准输入读取两行以空格分隔的整数,格式如下:
Ax1 Ay1 Ax2 Ay2
Bx1 By1 Bx2 By2
其中(x1,y1)为矩形左上顶点座标,(x2,y2)为右下顶点座标。各座标值均为整数,取值在0至1000之间。
【输出文件】

向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。在输出末尾要有一个回车符。
【输入样例】

0 0 2 2
1 1 3 4
【输出样例】

1
【样例说明】

输入的两个矩阵的相交面积为1

list_inp = []
for i in range(2):  # 读取
    list_inp.append(input().split())
x = 999  # max x
y = 999  # max y
# 定义一个矩阵 包含 A, B 两个矩阵,值全为0
list_matrix = [[0 for cow in range(x)] for row in range(y)]
for iy in range(y):  # A矩阵为1
    for jx in range(x):
        if ((jx >= int(list_inp[0][0]))
                and (iy >= int(list_inp[0][3]))
                and (jx <= int(list_inp[0][2]))
                and (iy <= int(list_inp[0][1]))):
            list_matrix[iy][jx] = 1
list_y = []  # i
list_x = []  # j
for i in range(y):  # 查找重复矩阵
    for j in range(x):
        if ((j >= int(list_inp[1][0]))
                and (i >= int(list_inp[1][3]))
                and (j <= int(list_inp[1][2]))
                and (i <= int(list_inp[1][1]))):
            if list_matrix[i][j] == 1:  # 重复区域
                list_x.append(j)  # x
                list_y.append(i)  # y
if len(list_x) == 0:
    print('0')
else:
    a = abs(list_x[0] - list_x[len(list_x) - 1])  # 长
    b = abs(list_y[0] - list_y[len(list_y) - 1])  # 宽
    print(a * b)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值