在每只海龟的顶部绘制一个矢量箭头

Draw an arrow for a vector on the top of each of the turtles

我想在顶部的海龟上画一个箭头,表示一个向量,表示为

[x1,y1]。矢量具有单位大小,箭头的大小不应超过乌龟的大小。 该向量存储在一个包含两个元素的列表中。

我不希望使用 netlogo 中的形状编辑器将其塑造为箭头,然后将乌龟指向矢量表示的航向。原因是我可以为每只乌龟画一根多于一根的箭头。

编辑:

期望:

Bryan 的回答如下:

编辑 2:

视频 link:https://www.youtube.com/watch?v=9SVcLg4Oyoc&t=23 以获得更好的解释。

这是我的做法:

确保您的海龟都是同一个品种,例如 particles,或者它们代表的任何品种。创建另一个名为 vectors 之类的海龟品种。这些海龟将成为矢量的尖端,但您将使用 links 来实际可视化矢量。现在,您可以像这样创建向量:

ask particles [
  hatch-vectors 1 [
    create-link-from myself
    hide-turtle
  ]
]

要更新向量的位置(假定向量本身存储在 turtle 变量 vec 中),您可以执行以下操作:

ask particles [
  let abs-x xcor + first vec
  let abs-y ycor + last vec
  ;; Since the particle is linked to the vector by a directed link, it's an out-link-neighbor
  ask out-link-neighbors [ setxy abs-x abs-y ]
]

编辑以响应更新:

这更难,因为 link 形状编辑比海龟形状编辑更受限制。一种可能是将矢量海龟的形状设置为箭头(您可以创建一个新的这种形状,或者默认的海龟形状就足够了)。与其隐藏 vectors,不如将它们指向正确的方向。让他们面对他们的 link-合作伙伴然后转身就可以很容易地做到这一点。

您可能还想从定向 link 切换到非定向 link 以摆脱 link 本身中的箭头。这应该只涉及较小的代码更改。