在NetLogo中创建一个半圆

在NetLogo中创建一个半圆,netlogo,Netlogo,下面是我在模型库中的海龟盘旋示例中找到的代码: 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不等

下面是我在模型库中的海龟盘旋示例中找到的代码:

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不等。
此外,简化创建轮廓是否可行。

如果希望圆在半圆中移动,可以执行以下操作:

基本上,你要检查海龟是否在水平轴上,如果是,你需要看看它是在半圆的左侧还是右侧。如果它在左边,乌龟应该面朝上,否则乌龟应该面朝左。由于四舍五入(由于旋转和速度),海龟可能有一个整数值,也可能没有一个整数值,因此需要执行distancexy

沿圆移动[r]
fd(pi*r/180)*(速度/50)
ifelse距离XY xcor 0<(速度/50)
[
ifelse距离xy(-1*r)ycor<(速度/50)
[设置标题0]
[设定标题-90]
]
[rt速度/50]
结束
如果你想把大海龟的形状做成一个圆形,你就可以确定海龟的形状。你可以进入海龟形状编辑器创建一个半圆形状,因为我没有看到

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