通过视锥转动乌龟

时间:2014-12-10 12:39:35

标签: netlogo

我希望写一下我对龟有一个视锥锥角的地方。

我将乌龟旋转通过视锥。

因此,首先它开始视锥,并以0.05度的增量变化,直到达到视锥的末端

  let max-head heading + (cone-angle / 2)
  set heading subtract-headings heading (zero-dash / 2)

  while[(subtract-headings heading max-head ) < 0]
  [
  set heading heading + .05
  ;wait 0.1
  ]

我写的上述代码不正确。但我无法找到错误。

1 个答案:

答案 0 :(得分:1)

我认为你的部分困难是使用减法标题。这可以找到两个标题之间最短角度的大小,而不是您想要的视锥(可能是宽视野)。由于您的代码顺时针旋转,我假设您想要从最逆时针点开始并旋转。唯一的困难是如果标题经过360,那么你需要将锥形扫描计数器和实际标题分开,并使用mod算法从计数器转换。

globals
[ cone-angle]

to setup
  clear-all
  create-turtles 1
  set cone-angle 25
end

to go
  ask turtles
  [ let max-head heading + (cone-angle / 2)
    let fake-head heading - (cone-angle / 2)

    while [fake-head < max-head]
    [ print fake-head
      set fake-head fake-head + 1
      set heading fake-head mod 360
      wait 0.1
    ]
  ]
end