在NetLogo中创建一个半圆

时间:2015-01-21 09:05:16

标签: netlogo

以下是我在模型库中的Turtles Circling示例中找到的代码:

to create-circle
  create-turtles 1
    [ move-to patch-goal
      set color gray - 3
      set size 4.5
      set shape "circle"
      stamp
      die ]
end

这不能用于创建半圆,除非你改变乌龟的形状,这看起来很幼稚。 如何创建一个以补丁为中心的半圆?考虑到乌龟在中心的视角,半圆从90到270不等。 此外,正在简化创建轮廓的可能性。

1 个答案:

答案 0 :(得分:1)

如果您希望圆圈以半圆形移动,您可以执行以下操作:

基本上,你检查乌龟是否在水平轴上,如果是,你需要看看它是在半圆的左侧还是右侧。如果它在左侧,乌龟应该朝上,否则乌龟应该朝左。你需要做远距离,因为由于四舍五入(由于旋转和速度),乌龟可能有也可能没有整数值。

to move-along-circle [r]
  fd (pi * r / 180) * (speed / 50)
  ifelse distancexy xcor 0 < (speed / 50)
  [
     ifelse distancexy (-1 * r) ycor < (speed / 50)
     [set heading 0]
     [set heading -90]
  ]
  [rt speed / 50]
end

如果你想让中间的大乌龟的形状成为一个圆圈,你就可以设置乌龟的形状。你可以进入乌龟形状编辑器创建一个半圆形状,因为我没有看到。