【问题标题】:Finding out presence of loops(interconnections) in a line找出线路中是否存在循环(互连)
【发布时间】:2015-10-10 04:01:55
【问题描述】:

我有一组二维坐标。它可以是积极的,消极的,也可以是分数。所以要点是,

50.2345,-23.452
1.345,-14.206

以此类推。现在我的问题是,如果我在图表上绘制这些坐标,如何确定该线是否会相交以形成一个环,或者它是否会保持为之字形线(不相交)。

【问题讨论】:

    标签: python math multidimensional-array coordinates coordinate-systems


    【解决方案1】:

    这可以通过嵌套的 FOR 循环来计算。

    假设我有 5 分: [0,0],[1,1],[2,1],[2,0],[0,1]

    这给了我们 4 个边缘,其中最后一个将与第一个重叠。 edge([0,0],[1,1]) 将与 edge([2,0],[0,1]) 相交。

    遍历每条边(线段)并测试与所有其他线段的交点。

    伪代码:

     for(edge1 in edges)
     {   
         for(edge2 in edges)
         {
            if ( testIntersect(edge1,edge2) ) return true;
         }
     }
     return false;
    

    【讨论】:

    • python如何让我们创建边缘?所有这些都是物理二维坐标,对吧?你有什么资源可以分享吗?
    • “边”只是连接两点的线的术语。我也听说过“线段”这个词,但频率要低得多。所有行都由它们的端点定义:[x1,y1],[x2,y2]。
    • 是的。我得到它。我试图找到一种在 python 中定义线段并实际应用这个概念的方法。看来我必须为两条线创建一个方程并检查它们是否相交。我想没有库。
    • 线交点是一个基本方程,做一个取4个点并返回true或false的函数会很简单
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 2021-08-16
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多