面对最小航向差异
face to minimum heading difference
我如何面对或旋转或设置代理(例如乌龟)的航向到需要最小旋转的补丁集元素。
所以代理有一个初始航向,我们有一个补丁集(例如一个圆锥中的 5 个补丁),我想面对角度差异最小的代理。我不想使用 patch-ahead,因为如果这是唯一的,它可以向后一个补丁。
我尝试了这些命令的一些组合:
min-one-of towards myself self heading subtract-headings towardsxy face - 180
提前致谢。
您在获取减去标题的标题差异时遇到问题吗?那么你可以试试这个:
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
我如何面对或旋转或设置代理(例如乌龟)的航向到需要最小旋转的补丁集元素。
所以代理有一个初始航向,我们有一个补丁集(例如一个圆锥中的 5 个补丁),我想面对角度差异最小的代理。我不想使用 patch-ahead,因为如果这是唯一的,它可以向后一个补丁。
我尝试了这些命令的一些组合: min-one-of towards myself self heading subtract-headings towardsxy face - 180
提前致谢。
您在获取减去标题的标题差异时遇到问题吗?那么你可以试试这个:
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