NetLogo海龟留下的痕迹会随着时间而褪色
我看到乌龟在视线中移动,我希望它们能在身后留下一条轨迹,就像它们在移动时冒出烟雾一样,跟踪它们的方向。当然,我可以用海龟笔(NetLogo海龟留下的痕迹会随着时间而褪色,netlogo,Netlogo,我看到乌龟在视线中移动,我希望它们能在身后留下一条轨迹,就像它们在移动时冒出烟雾一样,跟踪它们的方向。当然,我可以用海龟笔(放下笔),但是因为有很多海龟,景色很快就被旧的痕迹填满了。解决办法可能是在消失前只持续几滴水的小径。但我不知道如何做到这一点 更具体地说: 1) 是否有一种技术可以使在下笔命令后绘制的线在某段时间内逐渐消失? 2) 如果没有,有没有办法在画完几次线后,把用钢笔画的线去掉? 3) 如果没有,是否有其他技术具有类似的视觉效果?无法随着时间的推移使绘图层中的轨迹褪色。如果您想要褪
放下笔
),但是因为有很多海龟,景色很快就被旧的痕迹填满了。解决办法可能是在消失前只持续几滴水的小径。但我不知道如何做到这一点
更具体地说:
1) 是否有一种技术可以使在下笔
命令后绘制的线在某段时间内逐渐消失?
2) 如果没有,有没有办法在画完几次线后,把用钢笔画的线去掉?
3) 如果没有,是否有其他技术具有类似的视觉效果?无法随着时间的推移使绘图层中的轨迹褪色。如果您想要褪色的轨迹,则需要使用海龟来表示轨迹 下面是让“头”海龟在身后拖着十条海龟“尾巴”的示例代码:
breed [heads head]
breed [tails tail]
tails-own [age]
to setup
clear-all
set-default-shape tails "line"
create-heads 5
reset-ticks
end
to go
ask tails [
set age age + 1
if age = 10 [ die ]
]
ask heads [
hatch-tails 1
fd 1
rt random 10
lt random 10
]
tick
end
我只是彻底消除了旧的痕迹,但你也可以添加代码,随着时间的推移,它们的颜色会褪色。(在NetLogo模型库的地球科学部分,火模型就是这样一个例子。)这是一个基于@SethTisue的相同原理的版本,但尾部会逐渐消失:
globals [ tail-fade-rate ]
breed [heads head] ; turtles that move at random
breed [tails tail] ; segments of tail that follow the path of the head
to setup
clear-all ;; assume that the patches are black
set-default-shape tails "line"
set tail-fade-rate 0.3 ;; this would be better set by a slider on the interface
create-heads 5
reset-ticks
end
to go
ask tails [
set color color - tail-fade-rate ;; make tail color darker
if color mod 10 < 1 [ die ] ;; die if we are almost at black
]
ask heads [
hatch-tails 1
fd 1
rt random 10
lt random 10
]
tick
end
globals[尾部衰减率]
繁殖[头];随意移动的海龟
繁殖[尾巴];沿着头部路径的尾部片段
设置
清除所有;;假设补丁是黑色的
将默认形状尾部设置为“直线”
将尾部衰减率设置为0.3;;最好通过界面上的滑块进行设置
创建头5
重置滴答声
结束
外带
问尾[
设置颜色颜色-尾部褪色率;;使尾部颜色更暗
如果颜色mod 10<1[die];;如果我们几乎是黑色,就去死吧
]
问头[
舱口尾部1
fd 1
rt随机10
lt随机10
]
打上钩
结束
这里有另一种方法,但不使用额外的海龟。出于多样性的考虑,我建议先采用赛斯的方法
在这种方法中,每只海龟都会保留一个固定长度的列表,列出以前的位置和标题,并在最后一个位置上盖章。这种方法有一些不需要的工件,不如使用其他海龟灵活,但我认为它使用更少的内存,这可能有助于更大的模型
turtles-own [tail]
to setup
ca
crt 5 [set tail n-values 10 [(list xcor ycor heading)] ]
end
to go
ask turtles [
rt random 90 - 45 fd 1
stamp
; put current position and heading on head of tail
set tail fput (list xcor ycor heading) but-last tail
; move to end of tail and stamp the pcolor there
let temp-color color
setxy (item 0 last tail) (item 1 last tail)
set heading (item 2 last tail)
set color pcolor set size 1.5 stamp
; move back to head of tail and restore color, size and heading
setxy (item 0 first tail) (item 1 first tail)
set heading item 2 first tail
set size 1 set color temp-color
]
end
我想你也可以在询问头部时使用这个方法:在这里询问patch[Sprout tails 1]颜色如果你将海龟的初始颜色设置为白色,你可以在每个动作中设置color color-1,它显示一种褪色的效果,要求patch
Sprout
尾巴将失去方向和精确的xcor和ycor,哪个hatch
preserve。谢谢,我不知道:)