2017-04-14 55 views
1

我在看平面模型的「交叉?」方法來確定兩條線是否相交。相交線的平面模型

這個模型似乎在大部分工作;然而,我認爲我發現了一個問題。我沒有數學技能來解決這個問題。基本上,考慮連接的節點A和B以及連接的C和D。

當交點位於其中一個端點時,AB垂直於CD時,會出現此問題。

例如,

Node xcor ycor 
A 0  0 
B 0  10 
C -10 0 
D 5  0 

如何擴展模型來描述這個邊界條件有什麼想法?我不是那種數學上有信心來描述這種情況何時發生的......我想要一個相交線例子的替代方案,它計算線的方程並解決x的問題,並檢查x是否在終點之內其中一條線。

+1

考慮到您正在計算浮點數,無論您得到「是」還是「否」答案,舍入誤差都有可能使其成爲硬幣翻轉。在出現舍入誤差時,甚至沒有正確的答案。在你的例子中,碰巧只是因爲一切都是整數。 –

回答

2

馬特,平面不無論是在你的榜樣的座標組進行彙報真正的交叉對我來說:

Case 1

Case 2

在這兩種情況下,模型被認爲是「解決」;沒有報道交叉路口。對我來說,得到的模型可以解決,我需要真正有聯繫過,但它似乎並不重要,如果交叉點是直接在中心:

Case 3 Case 4

你得到類似的行爲與我在這裏的設置相同?我不確定我是否錯過了一些東西。下面的初始展示位置的修改代碼需要與附加圖片中的選擇器一樣。

to setup-level 
    reset-ticks ;; use tick counter as a move counter 
    clear-turtles ;; when the turtles die, the links connecting them die too 
    ;; create nodes and position them randomly 
    (foreach xcors ycors [ "A" "B" "C" "D" ] [ [ x y n ] -> 
    create-turtles 1 [ 
     setxy x y 
     set size 2 
     set color 88 
     set node n 
     set label node 
     set label-color black 
    ] 
    ] 
) 

    (foreach [ "A" "C" ] [ "B" "D" ] [ [ sp ep ] -> 
    ask turtles with [ node = sp ] [ 
     ask turtles with [ node = ep ] [ 
     create-link-with myself ] 
    ] 
    ] 
) 
    display 
end 
+1

你說得對。我剛回到原來的例子中,我點擊錯誤的鏈接來檢查十字。哎呀....謝謝。我更新了我的問題,使其更加合理。 – mattsap