我正在尝试对上皮空间的内部进行建模,并且被困在围绕圆柱形空间的内部边缘的运动中。基本上,我正在尝试实现 StickyBorders 并将代理保持在我正在创建的圆柱形空间中的这些边界上。
有没有办法在 Repast Simphony 中使用柱坐标?我发现了这个例子(https://www.researchgate.net/publication/259695792_An_Agent-Based_Model_of_Vascular_Disease_Remodeling_in_Pulmonary_Arterial_Hypertension)他们似乎做了类似的事情,但这篇论文没有深入解释方法,我不相信这是过去的交响乐模型中的一个例子。
目前,我有一类上皮细胞,它们被设置成一个圆柱体,而其他药剂则从该圆柱体内开始。为了移动,他们选择最想要的位置(类似于僵尸代码),然后在原始位置的一个方格内指向所需位置的方向上的新位置。他们在移动到新点之前检查它,并确保在紧邻的摩尔附近至少有两个其他上皮细胞,以确保它们靠在墙上。
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
}
我想知道是否有一种方法可以将空间的边界设置为圆柱体,或者检查代理的哪一侧靠墙并限制其在该方向上的移动。