Netlogo 面对最小航向差

Netlogo 面对最小航向差,netlogo,Netlogo,我如何面对或旋转或将代理(例如海龟)的标题设置为需要最小旋转的面片集元素。 代理有一个初始标题,我们有一个面片集(例如,一个圆锥体中有5个面片),我想面对代理,角度差最小的那个。我不想提前使用补丁,因为它可以是一个向后的补丁,如果这是唯一的一个 我尝试了以下命令的一些组合: 最小一个朝向自己的自航向减去朝向Y面的航向-180 提前谢谢。您在获取减去标题的标题差异时遇到问题吗?然后你可以试试这个: to-report abs-hdiff [#t #p] let _current [headin

我如何面对或旋转或将代理(例如海龟)的标题设置为需要最小旋转的面片集元素。

代理有一个初始标题,我们有一个面片集(例如,一个圆锥体中有5个面片),我想面对代理,角度差最小的那个。我不想提前使用补丁,因为它可以是一个向后的补丁,如果这是唯一的一个

我尝试了以下命令的一些组合: 最小一个朝向自己的自航向减去朝向Y面的航向-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