面对最小航向差异

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