plenus 2021-08-17 14:11 采纳率: 100%
浏览 43
已结题

python 判断随机点组成的线段的最小间距是否符合标准

想用python写一个程序,需要进行如下图的数据筛选,在一条轴上有
img

A1,A2,B1,B2的点及点坐标的数据,A1A2为一个线段,B1B2为一个线段,线段A与线段B随机分布在坐标轴上
需要判断所有最接近的线段A与线段B之间的间距是否存在大于10的,如果存在则保存满足该间距的线段的A1,A2,B1,B2坐标
举一个例子:
A1 = [10,40,100]
A2 = [20,50,200]
B1 = [21,70]
B2 = [35,85]
根据规则线段A 10-20 40-50 100-200
线段B 21-35 70-85
线段A 10-20 与线段B 21-35 距离最近,距离为1
线段A 100-200 与线段B 70-85 距离最近,距离为15
符合条件的坐标为A1 100 A2 200 B1 70 B2 85,保存四个点坐标

请问这样的程序如何编写?或者有什么好用的模块处理?
我的初步思路是写一个字典把每一个点的数据存进去,再通过循环一遍筛,但是无法确定坐标的数量,循环起来很繁琐,请问有没有更简便的方法?谢谢!

  • 写回答

2条回答 默认 最新

  • Pliosauroidea 2021-08-17 14:31
    关注

    符合要求的线段只可能是B2-A1或A2-B1
    找到最左侧的A2或B2(即第一个线段的右端点),
    对于A2,扫描其右侧的第一个A1(即其右侧第一个B线段的左端点),如果符合条件则记录,如果不符合条件,则接下来扫描得到的A1对应的B2
    对于B2同理
    可以维护两个变量记录已经扫到了A,B组内的第几个线段,降低查找时的循环次数
    有帮助请采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 已采纳回答 8月17日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?