Netlogo была черепахи, оставляя след, который исчезает со временем
pen-down), но поскольку черепах много, вид быстро заполняется старыми тропами. Решением могут быть следы, которые длятся всего несколько тиков, прежде чем они рассеются. Но я не знаю, как этого добиться.
чтобы быть более конкретным:
1) есть техника проведения линии, проведенной послеpen-down
команда постепенно исчезает в течение периода некоторых тиков?
2) Если нет, есть ли способ удалить линию, нарисованную с помощью пера через несколько тиков после того, как она была нарисована?
3) Если нет, есть ли какая-то другая техника, которая имела бы аналогичный визуальный эффект?
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
вот еще один подход, но без использования дополнительных черепах. Я включаю его ради разнообразия - я бы рекомендовал сначала пойти с подходом сета.
в этом подходе каждая черепаха сохраняет список фиксированной длины предыдущих местоположений и заголовков и штампует последнюю позицию. Есть некоторые нежелательные артефакты с таким подходом и не так гибки, как использование дополнительных черепах, но я думаю, что он использует меньше памяти, которая может помочь на больших моделях.
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