编程题. 已知两个矩形的坐标. 求两个矩形的交集, 并集面积.

zPeregrine-avatar

zPeregrine

2021-08-12T05:33:30+00:00

[img]https://img.nga.178.com/attachments/mon_202108/19/-7Q175-h92vK12T1kSfp-c3.jpg[/img]

如图所示. 求图中蓝色矩形和绿色矩形的交集,并集面积.

矩形的坐标是已知的. 分别是矩形左上角的xy 和 右下角的xy

诸君可以在这个模板的基础上解答..

def loss():
pos_x = (52.63857142857145, 40.071428571428584, 413.2814285714286,
520.9285714285714)

pos_y = (387.02666666666664, 109.08333333333334, 661.2933333333333,
451.91666666666663)

return 1, 2

loss()
zPeregrine-avatar

zPeregrine

有人看吗?
Flush-avatar

Flush

作业自己做
Umut-avatar

Umut

标准的扫描线+线段树的算法题
Ripleypuff-avatar

Ripleypuff

服了,请网友帮忙做作业连声谢谢都无的吗
Miza-avatar

Miza

比较坐标的xy,然后确定新矩形的4个坐标点,求出新矩形面积不就迎刃而解了。。
Pinnacle-avatar

Pinnacle

X_1,2,3,4
Y_1,2,3,4按大小排序,中间两个就是交集矩形的坐标了
mononoke-avatar

mononoke

矩形1对角线两个坐标,矩形2对角线两个坐标,上下左右内五种讨论一下就行
shaun 💩-avatar

shaun 💩

什么是并集[s:ac:中枪]
૮ ・ﻌ・ა-avatar

૮ ・ﻌ・ა

都整人工智能了 这么简单的东西还整不明白,这行业真就0门槛?
GunSh0w-avatar

GunSh0w

逻辑很简单的吧,按横坐标x确定出两个矩形哪两条边交叉,再算纵坐标重叠范围,这样算出来重叠部分面积后并集就是两个矩形面积加起来减去重叠就行

这个是对应图上那种情况
另一种就是y轴上重叠,逻辑也差不多,写if判断就行
zPeregrine-avatar

zPeregrine

Reply to [pid=542713706,28131962,1]Reply[/pid] Post by [uid=38031600]dingxiuwen123[/uid] (2021-08-19 13:50)

这样在两个矩形没有交集的时候会出错.
Jaseky-avatar

Jaseky

ltbr分别一对一比较,得到交集矩形坐标算面积

两个原始矩形面积相加减去上一个面积,就是并集
Atakez-avatar

Atakez

十年前,我的做法是,两个矩形左右边界、上下边界判定是否相交

左右届相交,则用上下界计算相交区域的面积;反之亦然
mononoke-avatar

mononoke

[quote][pid=542714243,28131962,1]Reply[/pid] Post by [uid=36009483]不是变态啦[/uid] (2021-08-19 13:52):

都整人工智能了 这么简单的东西还整不明白,这行业真就0门槛?[/quote]这好像是道利扣的题,貌似以前看过
Piggums-avatar

Piggums

[quote][pid=542715156,28131962,1]Reply[/pid] Post by [uid=42766790]黑狮子骑士[/uid] (2021-08-19 13:55):

十年前,我的做法是,两个矩形左右边界、上下边界判定是否相交

左右届相交,则用上下界计算相交区域的面积;反之亦然[/quote]判断其中一个方块的4个点是不是在另一个方块内更快。
Atakez-avatar

Atakez

Reply to [pid=542716811,28131962,1]Reply[/pid] Post by [uid=6192931]感觉还不错[/uid] (2021-08-19 14:02).

也可以,但是他需要求面积

判断完再算一遍的话,有点耗时间
Lizzy.-avatar

Lizzy.

计算机图形学,某一章课后题[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]
大学生都这么懒了吗?
TheOtherWalt-avatar

TheOtherWalt

Reply to [pid=542713064,28131962,1]Reply[/pid] Post by [uid=37810885]pchatcq[/uid] (2021-08-19 13:48)

矩阵太多才需要线段树吧,这两个矩阵用线段树就是杀鸡用牛刀啊
Piggums-avatar

Piggums

[quote][pid=542717094,28131962,1]Reply[/pid] Post by [uid=42766790]黑狮子骑士[/uid] (2021-08-19 14:03):

.

也可以,但是他需要求面积

判断完再算一遍的话,有点耗时间[/quote]还好吧,这种逻辑计算除了特别笨的算法,其实都差不多。
内存开销也就几个变量而已。

这种题算简单 弱智 的了,毕竟是水平垂直线,横纵都有重合,纵坐标最多4个,横坐标最多4个,玩不出花。

那种超大的(大地解算场景,需要考虑地球曲面)不规则凹多边形与不规则凹多边形的相交问题才恶心。