2017-09-23 66 views
0

我有一個字典,其中包含街道名稱作爲鍵和座標,如下所示。 '(2,2)(3,1)(4,-1)', '「b街道'':'(1,1)(5,1)'街道''' ', ''c street'':'(5,1)(6,6)'}Python:訪問字典;折線段

我想檢查每條街與所有其他街道之間是否存在使用街道座標的交叉點。有沒有簡單的方法去做?

謝謝。

+0

3座標代表什麼?您可以使用點積獲得線交點。 – atru

+0

3個座標是街道a的座標。它基本上由多線段表示。每個座標都與連續的座標相連以形成街道。 – buddingengineer

回答

1

下面是一些僞代碼,可能引發一些想法,如何實現多線interesection問題,可以考慮設法實現這些功能:

def coords_string_to_list_of_tuples(str): 
    ... 

def line_from_two_tuples(tuple1,tuple2): 
    ... 

def line_intersects_line(): 
    ... 

def check_intersection(line1, line2): 
    ... 

def print_intersections(): 
    for each street s: 
     coord_tuple_list = coords_string_to_list_of_tuples(list[s]) 
     for each street s2: 
      if s1 ≠ s2: 
       print check_intersection(list[s], list[s2]) 

我希望這些想法提供指導。

+0

謝謝菲利普。我會試試這個! – buddingengineer

+0

我很樂意幫助,我希望這可以解決您的問題:) –

+0

是的,它確實解決了我的問題。再次感謝您的指導:)我現在面臨的一個問題是,檢查正在進行兩次相同的街道座標..一旦進入外循環,一次進入內循環。但路口檢查仍然正常工作。所以所需的結果沒有任何問題,但我正在努力避免重複檢查。 – buddingengineer