2017-04-14 7 views
1

나는 Planarity 모델의 "crossed?" 메소드를 모델 라이브러리에서 호출하여 두 행이 교차하는지 판별하십시오.교차 선을위한 평면 모델

이 모델은 대부분의 부분에서 작동하는 것 같습니다. 그러나 내가 찾은 한 가지 문제가 있습니다. 나는 이것을 풀 수있는 수학 능력이 없다.

기본적으로 연결된 노드 A와 B와 연결된 C와 D를 생각해보십시오.

교차점이 끝점 중 하나에있을 때 AB가 CD와 수직 일 때 문제가 발생합니다. 예를 들어

,이 경계 조건을 설명하는 모델을 확장하는 방법에 대한

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

어떤 생각? 나는 수학적으로이 조건이 발생할 때를 설명하는 것이 아니다. 교차 선 예제에 대한 대안을 원한다. 선의 방정식을 계산하고 x를 해결하고 x가 끝점 내에 있는지 확인한다. 라인 중 하나의.

+1

는 반올림 오류는 "예"또는 "아니오"대답을 얻을 여부에게 coinflip을 만들 책임이있다. 반올림 오류가있는 경우 정답도 없습니다. 당신의 예제에서는 모든 것이 정수이기 때문에 발생합니다. –

답변

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