NetLogo-计算凸包的面积

NetLogo-计算凸包的面积,netlogo,Netlogo,我的模型中的代理将补丁添加到其区域补丁集。我想计算它们领土的凸面外壳的面积。然而,我真的很难弄清楚如何在模型中实现这些功能。有什么建议吗?基于对Python相同问题的回答: to-report convex-hull-area [ #hull ] ;; #hull is an agentset of links, ;; presumably defining a complete hull report (.5 * abs ( sum [

我的模型中的代理将补丁添加到其区域补丁集。我想计算它们领土的凸面外壳的面积。然而,我真的很难弄清楚如何在模型中实现这些功能。有什么建议吗?

基于对Python相同问题的回答:

to-report convex-hull-area [ #hull ]
   ;; #hull is an agentset of links,
   ;; presumably defining a complete hull
   report (.5 * abs ( 
     sum [ 
            [ xcor ] of end1 * [ ycor ] of end2 
          - [ xcor ] of end2 * [ ycor ] of end1
         ] of #hull
   )
end

使用链接很容易,但您也可以对成对的补丁集、海龟或有序列表执行类似操作。映射和减少可能会有帮助。

为什么凸面外壳的面积?为什么不仅仅是他们领土的面积(这非常容易计算)?@Bryan Head,因为我想将领土大小模型的结果与计算最小凸多边形的各种实地研究的结果进行比较;您可能能够逐行将某些内容转换为NetLogo。就在stackoverflow上,Python中的凸面外壳(即凸面多边形)区域:。这假设你已经计算出了实际的船体。但是如果你只有一组补丁,你仍然需要计算船体本身的跨度。这真的太糟糕了,你不能仅仅计算补丁(这将假定领土上的补丁都是相邻的)来获得面积。实际上,这些补丁都是相邻的或相互接触的。territory过程实际上会丢弃一个补丁或一组补丁,如果它们与最大的补丁组不相邻。有时,领土可能有“卷须”或其他奇怪的排列,使凸面船体面积计算膨胀。谢谢。这给了我一些可以合作的东西。我将尝试实现它,看看会发生什么。我仍然需要弄清楚如何确定哪些面片描述了凸包。