跳到主要内容

置于

图标

PlaceAt_image1.png

功能

将目标Agent设置到指定Cell空间位置

要点

工作机制

  • 无论当前Agent所在,都会被直接设置到指定位置,指定位置的方式有两种:
    • 指定一个目标Agent或Cell的个体对象
    • 指定Cell空间和坐标
  • 指定目标实体为Agent时,被放置对象的朝向(Angle)会调整到与目标相同;指定目标实体为Cell时,被放置对象朝向将为0

组件无输出数据

提示:置于和移动的区别
  • 置于组件表示设置Agent位置,是瞬间的,与原有空间状态无关
  • Agent的在Cell上的移动是物理性的连续的,只能基于原有空间状态,根据移动参数确定下一步位置
  • 用户不能直接使用计算公式修改Agent的内置属性CurrentSpaceCoordinate来"瞬间移动",也不能直接修改Angle来"瞬间转动"
  • 置于组件多用于动态初始化Agent对象的位置,动作执行主体可以是自己也可以不是;移动组件动作主体只能是Agent自己,用于主观视角的物理运动

设置方法

PlaceAt_image2.png

指定放置对象

  • 表达式输入栏
    • 接受一个能返回Agent或[Agent]格式值的表达式
    • 系统会将所有对象个体放置到相同的指定位置
示例:指定对象表达式
  • wolf.Individuals 狼种群的所有个体
  • sheep.FilterEntities(self.GetNeighbors(1.5)) 以调用者自己为中心、半径1.5内的所有羊
  • GetRelatives(cooperation,1) 和自己有直接(半径1)合作关系(名为cooperation的Link对象)的人(这里可以省略self关键字)
  • 类似请求组件的指定请求对象用法

指定位置

选择指定模式,到现有Agent/到指定坐标

到现有实体

PlaceAt_image3.png

在输入栏中输入能返回Agent或Cell个体的任意表达式

到指定空间坐标

PlaceAt_image4.png

  • 下方第一行输入框指定坐标,接受任意能返回[Number, Number]格式数据的表达式

  • 下方第二行输入框指定空间,接受任意能返回Cell对象格式的表达式

  • 请注意

    • Cell空间不环绕时,指定的纵横坐标不能超出空间边界,否则会报错如下图

      PlaceAt_image5.png

    • Cell空间环绕时,指定坐标可以超出边界,系统会自动换算到界内正常运行

提示

HoloMind 暂时仅支持2D的Cell空间,因此坐标是一个有两个Number元素的List,分别表示横纵坐标。

案例

模型案例

将羊在第3个Tick从最初的[0,0]放置到[5,5],你可以步进式运行以查看效果