gpt4 book ai didi

repast-simphony - 在 Repast Simphony 中制作圆柱形空间?

转载 作者:行者123 更新时间:2023-12-04 23:36:21 25 4
gpt4 key购买 nike

我正在尝试对上皮空间的内部进行建模,并且被困在圆柱形空间的内部边缘周围的运动中。基本上,我正在尝试实现 StickyBorders 并将代理保留在我正在创建的圆柱形空间中的这些边界上。

有没有办法在 Repast Simphony 中使用圆柱坐标?我发现了这个例子( https://www.researchgate.net/publication/259695792_An_Agent-Based_Model_of_Vascular_Disease_Remodeling_in_Pulmonary_Arterial_Hypertension ),他们似乎做了类似的事情,但这篇论文没有深入解释方法,我不相信这是 repast simphony 模型中的一个例子。

目前,我有一类上皮细胞,它们被设置为形成一个圆柱体,而其他代理就在该圆柱体内启动。为了移动,他们选择他们最想要的位置(类似于僵尸代码),然后在原始位置的一个方格内指向所需位置方向的新位置。在移动到新点之前,他们会检查这个新点,并确保在摩尔附近至少有两个其他上皮细胞,以确保它们紧贴墙壁。

GridPoint intendedpt = new GridPoint((int)Math.rint(alongX),(int)Math.rint(alongY),(int)Math.rint(alongZ));
GridCellNgh<EpithelialCell> nearEpithelium = new GridCellNgh<EpithelialCell>(mac_grid, intendedpt, EpithelialCell.class, 1,1,1);
List<GridCell<EpithelialCell>> EpiCells = nearEpithelium.getNeighborhood(false);
int nearbyEpiCellsCount=0;
for (GridCell<EpithelialCell> cell: EpiCells) {
nearbyEpiCellsCount++;
}
if (nearbyEpiCellsCount<2) {
System.out.println(this + " leaving epithelial wall /r");
RunEnvironment.getInstance().pauseRun();

//TODO: where to go if false
}

我想知道是否有办法将空间的边界设置为圆柱体,或者检查代理的哪一侧靠墙并限制其在该方向上的移动。

最佳答案

粘性边界代码( StickyBorders.java )基本上只是检查代理移动到的点是否超出了空间的任何维度,如果是,则该点被固定在该维度上。因此,例如,如果空间是 3x4 并且代理的移动会将其带到 4,2,那么该点变为 3,2,并且代理被放置在那里。在这种情况下,你能做这样的事情吗?如果没有,您能否编辑您的问题以解释原因,也许这将有助于我们更好地理解。

关于repast-simphony - 在 Repast Simphony 中制作圆柱形空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52934279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com