Netlogo 通过视锥旋转海龟
我想写一封信,在那里我可以看到乌龟的圆锥体角度 我让乌龟通过视觉锥旋转 因此,首先,它朝着视觉圆锥体的起点前进,以0.05度的增量变化,直到它到达视觉圆锥体的终点Netlogo 通过视锥旋转海龟,netlogo,Netlogo,我想写一封信,在那里我可以看到乌龟的圆锥体角度 我让乌龟通过视觉锥旋转 因此,首先,它朝着视觉圆锥体的起点前进,以0.05度的增量变化,直到它到达视觉圆锥体的终点 let max-head heading + (cone-angle / 2) set heading subtract-headings heading (zero-dash / 2) while[(subtract-headings heading max-head ) < 0] [ set headi
let max-head heading + (cone-angle / 2)
set heading subtract-headings heading (zero-dash / 2)
while[(subtract-headings heading max-head ) < 0]
[
set heading heading + .05
;wait 0.1
]
最大头部航向+(锥角/2)
设置航向减去航向(零破折号/2)
而[(减去标题最大标题)<0]
[
设置标题+0.05
;等待0.1
]
上面我写的代码不正确。但是我找不到错误。我想你的部分困难在于使用减法标题。这会找到两个标题之间最短角度的大小,而这不是您想要的圆锥体(可能很宽)。由于代码是顺时针旋转的,所以我假设您希望从最逆时针的点开始旋转。唯一的困难是,如果航向经过360度,那么您需要分离圆锥扫掠计数器和实际航向,并使用mod算术从计数器转换
globals
[ cone-angle]
to setup
clear-all
create-turtles 1
set cone-angle 25
end
to go
ask turtles
[ let max-head heading + (cone-angle / 2)
let fake-head heading - (cone-angle / 2)
while [fake-head < max-head]
[ print fake-head
set fake-head fake-head + 1
set heading fake-head mod 360
wait 0.1
]
]
end
globals
[锥角]
设置
清除所有
创造海龟1
设置锥角25
结束
外带
问海龟
[最大头部航向+(锥角/2)
让假头航向-(锥角/2)
而[假头<最大头]
[打印假头
设置假头假头+1
设置航向假头mod 360
等等0.1
]
]
结束
谢谢!考虑到这一准则。如果海龟的初始航向为10,锥角为30。那么假标题将是10-15=-5。而不是355。从这个角度看没有问题吗?-5和355是等价的标题,所以我认为没有问题。如果执行set heading-5 print heading
,它实际上会打印355,因为set heading
本身执行mod
操作。