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()
比较坐标的xy,然后确定新矩形的4个坐标点,求出新矩形面积不就迎刃而解了。。
X_1,2,3,4
Y_1,2,3,4按大小排序,中间两个就是交集矩形的坐标了
矩形1对角线两个坐标,矩形2对角线两个坐标,上下左右内五种讨论一下就行
都整人工智能了 这么简单的东西还整不明白,这行业真就0门槛?
逻辑很简单的吧,按横坐标x确定出两个矩形哪两条边交叉,再算纵坐标重叠范围,这样算出来重叠部分面积后并集就是两个矩形面积加起来减去重叠就行
这个是对应图上那种情况
另一种就是y轴上重叠,逻辑也差不多,写if判断就行
Reply to [pid=542713706,28131962,1]Reply[/pid] Post by [uid=38031600]dingxiuwen123[/uid] (2021-08-19 13:50)
这样在两个矩形没有交集的时候会出错.
ltbr分别一对一比较,得到交集矩形坐标算面积
两个原始矩形面积相加减去上一个面积,就是并集
十年前,我的做法是,两个矩形左右边界、上下边界判定是否相交
左右届相交,则用上下界计算相交区域的面积;反之亦然
[quote][pid=542714243,28131962,1]Reply[/pid] Post by [uid=36009483]不是变态啦[/uid] (2021-08-19 13:52):
都整人工智能了 这么简单的东西还整不明白,这行业真就0门槛?[/quote]这好像是道利扣的题,貌似以前看过
[quote][pid=542715156,28131962,1]Reply[/pid] Post by [uid=42766790]黑狮子骑士[/uid] (2021-08-19 13:55):
十年前,我的做法是,两个矩形左右边界、上下边界判定是否相交
左右届相交,则用上下界计算相交区域的面积;反之亦然[/quote]判断其中一个方块的4个点是不是在另一个方块内更快。
Reply to [pid=542716811,28131962,1]Reply[/pid] Post by [uid=6192931]感觉还不错[/uid] (2021-08-19 14:02).
也可以,但是他需要求面积
判断完再算一遍的话,有点耗时间
计算机图形学,某一章课后题[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]
大学生都这么懒了吗?
Reply to [pid=542713064,28131962,1]Reply[/pid] Post by [uid=37810885]pchatcq[/uid] (2021-08-19 13:48)
矩阵太多才需要线段树吧,这两个矩阵用线段树就是杀鸡用牛刀啊
[quote][pid=542717094,28131962,1]Reply[/pid] Post by [uid=42766790]黑狮子骑士[/uid] (2021-08-19 14:03):
.
也可以,但是他需要求面积
判断完再算一遍的话,有点耗时间[/quote]还好吧,这种逻辑计算除了特别笨的算法,其实都差不多。
内存开销也就几个变量而已。
这种题算简单 弱智 的了,毕竟是水平垂直线,横纵都有重合,纵坐标最多4个,横坐标最多4个,玩不出花。
那种超大的(大地解算场景,需要考虑地球曲面)不规则凹多边形与不规则凹多边形的相交问题才恶心。