求两个矩形的space
2022/5/1 23:12:46
本文主要是介绍求两个矩形的space,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
获取两个Rect之间的space:
import matplotlib.pyplot as plt from matplotlib.patches import Rectangle, Polygon def draw_rect(bb, ax, color='black'): ax.add_patch(Rectangle(bb[:2], bb[2] - bb[0], bb[3] - bb[1], fill=False, color=color)) def draw_rect_lst(bb_lst, ax, color='black'): for bb in bb_lst: draw_rect(bb, ax, color) def rect_distance(bb1, bb2): b1_x0, b1_y0, b1_x1, b1_y1 = bb1 b2_x0, b2_y0, b2_x1, b2_y1 = bb2 left = b2_x1 < b1_x0 right = b2_x0 > b1_x1 bottom = b2_y1 < b1_y0 top = b2_y0 > b1_y1 dist = None v = None if top and left: pass elif top and right: pass elif bottom and left: pass elif bottom and right: pass elif top: dist = b2_y0 - b1_y1 v = (b1_x1, b1_y1, b1_x1, b1_y1 + dist) elif bottom: dist = b1_y0 - b2_y1 v = (b1_x0, b1_y0, b1_x0, b1_y0 - dist) elif left: dist = b1_x0 - b2_x1 v = (b1_x0, b1_y0, b1_x0 - dist, b1_y0) elif right: dist = b2_x0 - b1_x1 v = (b1_x1, b1_y1, b1_x1 + dist, b1_y1) return dist, v fig, ax = plt.subplots() ax.plot([10, 10], [10, 10]) rect1 = (10, 10, 40, 40) rect2 = (30, 50, 70, 80) rect_lst = [rect1, rect2] draw_rect(rect1, ax, 'red') draw_rect(rect2, ax, 'blue') dist, v = rect_distance(rect1, rect2) if dist: print(dist, v) print(v[:2], v[2:]) plt.plot([v[0], v[2]], [v[1], v[3]], color='green') plt.show()
这篇关于求两个矩形的space的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享