在每只乌龟的顶部画一个矢量箭头

时间:2015-02-27 17:37:05

标签: netlogo

我希望在顶部的乌龟上画一个箭头,表示由

表示的矢量

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

我不希望使用netlogo中的形状编辑器来形成箭头,然后将乌龟指向矢量所表示的标题。原因是我可以为每只乌龟画一个而不是1个箭头。

修改

期望:

enter image description here

布莱恩的答案给出了以下内容: enter image description here

编辑2:

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

1 个答案:

答案 0 :(得分:4)

我是这样做的:

确保你的海龟都是一个品种,比如particles,或者它们所代表的任何品种。创建另一个名为vectors或其他东西的海龟品种。这些海龟将成为你的向量的尖端,但你将使用链接实际可视化向量。现在,您可以像这样创建向量:

ask particles [
  hatch-vectors 1 [
    create-link-from myself
    hide-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 ]
]

编辑以响应更新:

这更难,因为链接形状编辑比龟形编辑更有限。一种可能性是将矢量龟的形状设置为箭头(您可以创建一个新的这样的形状,或者默认的龟形状就足够了)。而不是隐藏vectors,而是将它们指向正确的方向。这可以通过让他们面对他们的链接伙伴然后转身来轻松完成。

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