我如何面对或旋转或将代理(例如乌龟)的标题设置为需要最小旋转的补丁集的元素。
所以代理有一个初始标题,我们有一个补丁集(例如一个锥形中的5个补丁),我想面对代理人那个角度差最小的代理人。我不想使用补丁,因为如果它是唯一的补丁,它可以是一个补丁。
我尝试了一些这些命令的组合: 最小的一个朝向自己的自我标题减去标题朝向表面 - 180
提前谢谢。
答案 0 :(得分:3)
您是否在减去标题时遇到标题差异?然后你可以试试这个:
to-report abs-hdiff [#t #p]
let _current [heading] of #t
let _new [towards #p] of #t
report abs (subtract-headings _current _new)
end
例如:
to test
ca
ask n-of 5 patches [set pcolor red]
let _patches (patches with [pcolor = red])
crt 1
ask turtle 0 [
hatch 1 [pen-down fd 10 die] ;just to see old heading
face min-one-of _patches [abs-hdiff myself self]
]
end