检查X轴上的两条线A(x1,x2)和B(x3,x4)是否重叠

isover10的Python项目详细描述


检查x轴上的两条线(x1,x2)和(x3,x4)是否重叠或不

如果它们重叠,则返回true,否则返回false

例如,(1,5)和(2,6)重叠,而不是(1,5)和(6,8)。

解决方案基于以下架构:

             A0------------------A1
  B0------B1                          B0------B1

      if B1<A0 OR B0>A1 then
         Line B does NOT overlap Line A
      else
         Line B DOES ovelap Line A

因此,我们需要确保A和B已订购:

def swap(X):
    '''
    this function does make sure the pair is 
    ordered (a,b) where a<b
    (10, -5) would become (-5, 10)
    '''
    if X[0]>X[1]:
        return (X[1],X[0])
    return X

A, B = swap(A), swap(B)

建议的解决方案:

定义Isbovera(a,b):

# Return True if A Line overlaps B Line; False otherwise

A, B = swap(A), swap(B)

return not (B[1]<A[0] or B[0]>A[1])

要调用此函数,请查看testoverlav0.py

(venv)c:\工作\vanhack\venv\quiz\test_a>;python testoverlav0.py

<这个程序接受x轴上的两行(x1,x2)和(x3,x4)并返回 它们是否重叠(真)或不重叠(假)

输入要检查的行总数,默认值为1对

请添加1行待检查-使用逗号

(1,2),(3,4)应键入1,2,3,4

1,5,2,6

(1.0,5.0)(2.0,6.0)正确

真平均(1,2)和(5,6)do重叠

让我们检查下面的一对(1,5)和(6,8)

(1,5)和(6,8)应输入如下:

1,5,6,8

(1.0,5.0)(6.0,8.0)错误

假平均值(1,2)和(6,8)不重叠

注: 我们使用的是float,但没有提到它-set/intersection也可以处理它,但仅限于int图形

要将其作为批处理模块运行,应创建一个包含n对(逗号分隔)的文本文件,如下所示:

第一行,要检查的对数 第二行下一对要检查 等等

示例:

4

13,-6,-8,3

-15、-6、4、-11

-4、-2、0、-20

-18、9、10、12

**请检查testsample.txt**

python testoverlav0.py<;testsample.txt

<这个程序接受x轴上的两行(x1,x2)和(x3,x4)并返回它们是否重叠。 输入要检查的行总数,默认值为1对 请添加100行待检查-使用逗号 (1,2),(3,4)应键入1,2,3,4

(13.0,-6.0)(8.0,3.0)真值

(-15.0,-6.0)(4.0,-11.0)正确

(-4.0,-2.0)(0.0,-20.0)真值

(-18.0,9.0)(10.0,12.0)错误

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?