2015-11-06 284 views
3

我需要创建具有特定尺寸的海龟并检查重叠。 由于每个定义的龟没有扩展名,我想也许这个gis扩展可能是有用的。在Netlogo中有大小的海龟

有一个信封用龟甲状

let gis:envelope-of self (list (xcor - 2) (xcor + 2) (ycor - 2) (ycor + 2)) 

相关联的方式,但我不知道如何使用此绘制的信封,并检查是否有重叠。

另一种方式可能是放弃的念头,其尺寸一个海龟,并通过使用

gis:turtle-dataset turtle-set 

创建从海龟的GIS数据集,但我不知道如何使用这一个多边形: - (

任何想法?

+0

我从来没有使用扩展,但海龟的大小。 https://ccl.northwestern.edu/netlogo/docs/dictionary.html#size这是你的意思吗? –

+0

龟的形状是否重要?如果他们是圈子,例如检查重叠不是太难。 –

+0

我一直以来的尺寸只是为了展示,但我会检查一下。 是的,形状和大小很重要:这是关于房屋分布的一项工作的开始,所以我将不得不将其映射到实际数据。但你说得对,因为如果形状是一个圆形,我可以使用半径内基元。然而,我可以创建一个记者并用它来检查重叠。如果你有一个很好的解决方案, –

回答

0

更新为赛斯的评论作出明确的界和其他人不同的方法。

如果乌龟是圆圈,那么如果两只乌龟的尺寸之和为</2,则使用distance primitive,如Seth的评论中所述,这是重叠的。

但是,如果你有正方形或其他形状,那么你将不得不做一些花哨的东西与heading和各种三角函数,并需要位置的x和y方向的差异xcor和的差异(分别像这样的东西让你开始:

to-report xdiff [ turt1 turt2 ] 
    report [xcor] of turt1 - [xcor] of turt2 
end 
+0

你的'find-distance'与'distance'原始内容相同 - 不需要自己做数学,你可以写'turt2'的[distance turt1]。 “距离”实际上更好,因为它知道包装和不包装的世界;你的代码只能在一个不包装的世界中运行。 –

+0

无论如何为你记者。那一刻我不想为此建造一个记者。如果他们能拿出s.th的话,我会问那些写延期的人。 但是,我会及时通知您:-) –

+0

那么,其中一个贡献者是Seth Tissue :-) 您认为这可以通过GIS扩展来解决吗? –

0

最后我采取了一个简单的办法: 因为我的对象没有动,我用邻接的贴片,形成所需大小的块。在我占用一个新补丁之前,我检查它是否已经被使用,如果有的话,我删除所有新补丁的补丁。 N非常全面,但它为我工作到目前为止。