【发布时间】:2022-06-10 20:29:34
【问题描述】:
我写了一个函数,可以生成很多这样的东西:
[
(0, 619.5312394955338, 337.573529597446, 1080),
(619.5312394955338, 1544.7619727875272, 0, 310.3079296654736),
(619.5312394955338, 1544.7619727875272, 310.3079296654736, 337.573529597446),
(1544.7619727875272, 1920, 0, 310.3079296654736),
(619.5312394955338, 1088.2418093689296, 708.2009619111413, 1080),
(1088.2418093689296, 1920, 337.573529597446, 708.2009619111413),
(1088.2418093689296, 1920, 708.2009619111413, 1080),
(0, 173.32617646340788, 288.56747000927186, 337.573529597446),
(173.32617646340788, 619.5312394955338, 0, 288.56747000927186),
(173.32617646340788, 619.5312394955338, 288.56747000927186, 337.573529597446),
(0, 25.117144604340456, 177.08675820480235, 288.56747000927186),
(25.117144604340456, 173.32617646340788, 0, 177.08675820480235),
(25.117144604340456, 173.32617646340788, 177.08675820480235, 288.56747000927186),
(0, 22.953859822450067, 0, 96.22494617847441),
(0, 22.953859822450067, 96.22494617847441, 177.08675820480235),
(22.953859822450067, 25.117144604340456, 0, 96.22494617847441),
(22.953859822450067, 25.117144604340456, 96.22494617847441, 177.08675820480235),
(619.5312394955338, 1061.0668595171933, 337.573529597446, 487.04072151109654),
(619.5312394955338, 1061.0668595171933, 487.04072151109654, 708.2009619111413),
(1061.0668595171933, 1088.2418093689296, 337.573529597446, 487.04072151109654),
(1061.0668595171933, 1088.2418093689296, 487.04072151109654, 708.2009619111413),
(1544.7619727875272, 1797.260895403902, 310.3079296654736, 324.5737372982961),
(1544.7619727875272, 1797.260895403902, 324.5737372982961, 337.573529597446),
(1797.260895403902, 1920, 310.3079296654736, 324.5737372982961),
(1797.260895403902, 1920, 324.5737372982961, 337.573529597446)
]
第一个数字总是小于第二个数字,第三个数字总是小于第四个数字,前两个数字代表x坐标,后两个数字代表y坐标。
上面的列表代表了这个:
[
[(0, 337.573529597446), (619.5312394955338, 337.573529597446), (619.5312394955338, 1080), (0, 1080)],
[(619.5312394955338, 0), (1544.7619727875272, 0), (1544.7619727875272, 310.3079296654736), (619.5312394955338, 310.3079296654736)],
[(619.5312394955338, 310.3079296654736), (1544.7619727875272, 310.3079296654736), (1544.7619727875272, 337.573529597446), (619.5312394955338, 337.573529597446)],
[(1544.7619727875272, 0), (1920, 0), (1920, 310.3079296654736), (1544.7619727875272, 310.3079296654736)],
[(619.5312394955338, 708.2009619111413), (1088.2418093689296, 708.2009619111413), (1088.2418093689296, 1080), (619.5312394955338, 1080)],
[(1088.2418093689296, 337.573529597446), (1920, 337.573529597446), (1920, 708.2009619111413), (1088.2418093689296, 708.2009619111413)],
[(1088.2418093689296, 708.2009619111413), (1920, 708.2009619111413), (1920, 1080), (1088.2418093689296, 1080)],
[(0, 288.56747000927186), (173.32617646340788, 288.56747000927186), (173.32617646340788, 337.573529597446), (0, 337.573529597446)],
[(173.32617646340788, 0), (619.5312394955338, 0), (619.5312394955338, 288.56747000927186), (173.32617646340788, 288.56747000927186)],
[(173.32617646340788, 288.56747000927186), (619.5312394955338, 288.56747000927186), (619.5312394955338, 337.573529597446), (173.32617646340788, 337.573529597446)],
[(0, 177.08675820480235), (25.117144604340456, 177.08675820480235), (25.117144604340456, 288.56747000927186), (0, 288.56747000927186)],
[(25.117144604340456, 0), (173.32617646340788, 0), (173.32617646340788, 177.08675820480235), (25.117144604340456, 177.08675820480235)],
[(25.117144604340456, 177.08675820480235), (173.32617646340788, 177.08675820480235), (173.32617646340788, 288.56747000927186), (25.117144604340456, 288.56747000927186)],
[(0, 0), (22.953859822450067, 0), (22.953859822450067, 96.22494617847441), (0, 96.22494617847441)],
[(0, 96.22494617847441), (22.953859822450067, 96.22494617847441), (22.953859822450067, 177.08675820480235), (0, 177.08675820480235)],
[(22.953859822450067, 0), (25.117144604340456, 0), (25.117144604340456, 96.22494617847441), (22.953859822450067, 96.22494617847441)],
[(22.953859822450067, 96.22494617847441), (25.117144604340456, 96.22494617847441), (25.117144604340456, 177.08675820480235), (22.953859822450067, 177.08675820480235)],
[(619.5312394955338, 337.573529597446), (1061.0668595171933, 337.573529597446), (1061.0668595171933, 487.04072151109654), (619.5312394955338, 487.04072151109654)],
[(619.5312394955338, 487.04072151109654), (1061.0668595171933, 487.04072151109654), (1061.0668595171933, 708.2009619111413), (619.5312394955338, 708.2009619111413)],
[(1061.0668595171933, 337.573529597446), (1088.2418093689296, 337.573529597446), (1088.2418093689296, 487.04072151109654), (1061.0668595171933, 487.04072151109654)],
[(1061.0668595171933, 487.04072151109654), (1088.2418093689296, 487.04072151109654), (1088.2418093689296, 708.2009619111413), (1061.0668595171933, 708.2009619111413)],
[(1544.7619727875272, 310.3079296654736), (1797.260895403902, 310.3079296654736), (1797.260895403902, 324.5737372982961), (1544.7619727875272, 324.5737372982961)],
[(1544.7619727875272, 324.5737372982961), (1797.260895403902, 324.5737372982961), (1797.260895403902, 337.573529597446), (1544.7619727875272, 337.573529597446)],
[(1797.260895403902, 310.3079296654736), (1920, 310.3079296654736), (1920, 324.5737372982961), (1797.260895403902, 324.5737372982961)],
[(1797.260895403902, 324.5737372982961), (1920, 324.5737372982961), (1920, 337.573529597446), (1797.260895403902, 337.573529597446)]
]
非重叠矩形的顶点坐标列表:
我想知道,给定一个宽度为w 和高度为h 的矩形,我如何有效地找到该矩形可以放入的所有边界框?
我只知道如何使用列表理解来做到这一点:
[(x1, x2, y1, y2) for x1, x2, y1, y2 in limits if x2 - x1 >= w and y2 - y1 >= h]
不允许旋转。并且位置被忽略。只有大小很重要。
【问题讨论】:
-
只是为了确认,您只想知道矩形可以放入哪些边界框,而不管位置或方向如何? (即是否允许/需要轮换?)
标签: python python-3.x algorithm