求两个矩形的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-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!