NetLogo: network- spring layout with 2 breeds

NetLogo: network- spring layout with 2 breeds

我是 NetLogo 的新手,在添加 'layout spring' 时遇到问题。

我的两个主要问题是:

breed [A-agents A-agent]
breed [B-agents B-agent]

to setup
  clear-all
  reset-ticks
  spawn-A
  spawn-B
  connect-spawns
end

to spawn-A ;; create one intial A-agents and add to setup
  create-A-agents 1
  [ set shape "triangle"
    set size 0.75
    set color 44
    setxy random-xcor random-ycor
  ]
end

to spawn-B ;; create one initial B-agents and add to setup
  create-B-agents 1
  [ set shape "circle"
    set size 0.5
    set color red
    setxy random-xcor random-ycor
  ]
end

to connect-spawns ;; create a link between B and A agent
  ask B-agents [create-links-with A-agents [set color green]]
end

to go ;; create a new node based on the emprical user distribution of A-agents/B-agents
  let p random-float 100 ;; create a random number between 1-100
  if (p > 96) [create-A-agents 1
      [ set shape "triangle"
        set size 0.75
        set color 44
        setxy random-xcor random-ycor
        let thisA self
        let test-num random-float 1
   ifelse test-num > 0.58
      [ create-link-with one-of other B-agents [set color green]]
      [ create-link-with one-of other A-agents [set color 44]]]
    ]
   if (p <= 96) [create-B-agents 1
      [ set shape "circle"
        set size 0.5
        set color red
        setxy random-xcor random-ycor
        let thisB self
        let test-num random-float 1
     ifelse test-num >= 0.56
      [ create-link-with one-of other B-agents [set color red]]
      [ create-link-with one-of other A-agents [set color cyan]]]
    ]
  tick
end

要在没有创建代理的世界边缘留空 space,一种方法是更改​​此设置:

setxy random-xcor random-ycor

对此:

setxy (0.8 * random-xcor) (0.8 * random-ycor)

要使链接不跨越世界边界,请打开视图设置并关闭两个方向的世界环绕(参见 http://ccl.northwestern.edu/netlogo/docs/interfacetab.html#the-2d-and-3d-views)。