2014-10-21 2 views
1

거북이의 territory에 속하는 패치 세트 주위에 볼록한 선체를 구성하는 패치 세트를 찾고 싶습니다. 볼록 선체 (아래 그림과 관련)를 계산하기 위해 "선물 포장"절차를 사용할 계획이었습니다. enter image description hereNetLogo - 패치 세트의 두 패치 사이의 최소 각도 찾기

가장 먼저 pxcor의 영토 패치를 찾는 중입니다. 그런 다음 시작 패치에서 다시 도착할 때까지 가장 작은 숫자 인 heading (즉, 0에 가장 가까운 각도)을 갖는 영역 패치를 찾고 싶습니다. 하지만 두 패치 사이에서 표제를 계산하는 방법을 알아낼 수 없습니다. 어떤 제안이라도 도움이 될 것입니다. 여기까지 내가 지금까지 가지고있는 것이있다. 결국 나는 외부 선체를 따라 각 점을 통과하여이 루프를 만들어야 할 것입니다.

patches-own [ owner-animal ] 
turtles-own [ territory ] 

to setup 
    ca 
    create-turtles 1 
    [ 
     move-to patch-at (max-pxcor/2) (max-pycor/2) 
     set territory patches in-radius (2 + random 8) 
     ask territory [ 
     set owner-animal myself 
     set pcolor [ color ] of myself - 2 
     ] 
    ] 
end 

to find-convex-hull 
    ask turtles 
    [ 
    let start-patch min-one-of territory [pxcor] 
    ask start-patch 
    [ 
     let next-patch min-one-of [territory] of myself [towards self] 
    ] 
    ] 
end 
+0

(1) 두 패치 사이의 기울기 또는 (2) 다른 선과 관련된 선의 각도를 찾으려는 것 같습니다. 그 맞습니까? 첫 번째 항목에서'pxcor's와'pycor's를 빼서 기울기를 계산할 수는 없습니까? 두 번째로는 NetLogo의 삼각 함수를 사용할 수 있습니다. 나는 올바른 길을 가고 있는가? – Mars

+0

더 비슷합니다 (2). 점과 다른 모든 점 사이의 기울기이지만 기울기는 0도 (북쪽)에 상대적이어야합니다. 이는 점과 다른 두 점 사이의 기울기가 동일 할 수 있기 때문에 가능하지만 다른 두 점은 0도 선 반대편에 있습니다. 나는 북쪽에 상대적인도를 부여하기 때문에'heading '또는'toward'명령이 효과가 있기를 바랐다. – user2359494

+0

또한''pycor's에서''pxcor's를 빼서 기울기를 계산하면 점이 같은''pxcor''를 가질 때 오류가 발생합니다 (0으로 나눌 수 없음). – user2359494

답변

1

나는 이것이 당신이 찾고있는 것이라고 생각합니다. 이 코드에 관한 유일한 이상한 점은 [towards myself - heading] of myself]입니다. 첫 번째 자신이 다음 거북이를 가리키고 두 번째 자신이 원본을 가리키는 것은 내 자신이기 때문입니다. 이해

합니까? 궁금한 점이 있으면 알려주세요. 그런데

to setup 
    ca 
    crt 10 [setxy random-xcor random-ycor] 
end 

to start-connecting 
    ask min-one-of turtles [xcor][set heading 0 connect] 
end 

to connect 
    let the-turtle min-one-of other turtles with [[towards myself - heading] of myself > 0] [ [towards myself - heading] of myself] 
    if the-turtle = nobody [stop] 
    face the-turtle 
    ask the-turtle [set heading [heading] of myself] 
    create-link-with the-turtle 
    ask the-turtle [connect] 
end 

, 당신은 단지 당신이 connect 절차와 연결 거북하는 변경, 특정 agentsets이 작업을 수행하려는 경우.