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)。
我是 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)。