2014-10-28 72 views
1

我需要幫助的是如何使用Netlogo編寫此公式。 (請參閱附圖) 我試圖通過計算領導者的標題和代理人的標題之間的2個角度的平均值來爲代理人設置新的標題。爲代理應更改爲27以下新的標題是,我使用的代碼,但它不工作的方式我想:如何設置新的海龜方向從平均2個角度在netlogo

enter image description here

to change-heading 
    let nearby-leaders turtles with [leader? ] 
    if any? nearby-leaders in-radius vision 
    [turn-towards average-heading-towards-leaders max-cohere-turn ] 
end 

to-report average-heading-towards-leaders 
let nearby-leaders turtles with [leader? ] 
report average-heading ([heading] of one-of nearby-leaders) heading 
end 

to-report average-heading [a b] 
report (a - (subtract-headings a b)/2) mod 360 
end 

真的需要這樣的建議,感謝幫幫我。

回答

2

它迴避了三角函數,但這個工程

to-report average-heading[a b] 
Let h (a - (subtract-headings a b)/2) mod 360 
Let s (a + b)/2 
Ifelse h < s [report h][report s] 
] 
end 

在你的代碼

to-report average-heading-towards-leaders 
report average-heading ([heading] of one-of nearby-leaders turtles with [leader? ]) heading 
end 

Mark II的

+0

但隨後如何定義a和b的值? – juliana 2014-10-28 12:30:10

+0

'a'和'b'是你想要平均的兩個標題。我本可以稱他們爲頭一和頭二。 – 2014-10-28 13:23:30

+0

我試着用上面提到的平均標題[ab],但是當我問任何靠近領導者的龜時,它會彈出錯誤消息「average-heading-toward-leaders expected 2 inputs」平均標題朝向領導者** – juliana 2014-10-28 13:53:33