如何在NetLogo中区分乌龟的左右视野?

  • 本文关键字:左右 NetLogo 中区 netlogo
  • 更新时间 :
  • 英文 :


我想在NetLogo中分离乌龟的左右视觉域。左视野表示角度为-179到-1度,而右视野表示角度为1到179度,如果海龟的正面角度为0度。

在NetLogo中,patch-right-and-aheadpatch-left-and-ahead可以区分乌龟的左右视野,但这些代码只是一个角度。in-cone不能分离视野。

在NetLogo中有什么代码来编写这个吗?

可以保存海龟当前的标题,将其向左旋转90度,然后使用

查看原始标题左侧的内容
scan x 180

然后从原标题右转90度看看原标题右侧有什么

scan x 180

然后把它转回原来的标题。

下面的代码说明了这一点。将扫描角度设置为小于180的角度,以便更清楚地看到正在发生的事情。当你通过go步骤时,它会旋转并突出显示它所看到的内容。

globals [ scan-angle]
turtles-own [ actual-heading ]
to setup
clear-all
set scan-angle 180
create-turtles 1 [ set size 4 set heading 0 set actual-heading heading]
reset-ticks
end
to go
ask turtle 0 [ set heading (heading + 30) set actual-heading heading]
scansides scan-angle
tick
end
to scansides [ angle ]
ask patches [ set pcolor black] 
ask turtle 0 
[ 
;; scan left side
set heading (actual-heading - 90) 
ask patches in-cone 10 angle [ set pcolor red]
;; scan right side
set heading (actual-heading + 90) 
ask patches in-cone 10 angle [ set pcolor green]
set heading actual-heading
]
end

最新更新