2014-01-12 9 views
11

私はカメを見渡すことができます。私は彼らの後ろにトレイルを残すことで、行った。もちろん、私はカメペン(pen-down)を使うことができましたが、多くのカメがあるので、景色はすぐに古い道で満たされます。解決策は、消滅する前に数ティックだけ続くことができます。しかし、私はそれを達成する方法を知らない。NetLogoのカメは時間の経過とともに消えていくトレイルを残す

具体的には: 1)pen-downコマンドの後に描かれた線をいくつかのティックの間に徐々に消える技術はありますか? 2)描画されていない場合は、ペンを描いた後にペンを使って描いた線を数ティック後に削除する方法がありますか? 3)そうでない場合は、同様の視覚効果を持つ他のテクニックがありますか?

答えて

6

時間の経過とともに描画レイヤーにトレイルがフェードアウトすることはありません。フェードするトレイルが必要な場合は、カメを使用してトレイルを表現する必要があります。

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 

私はあからさま古い道を殺すんだけど、あなたはまた、そのフェードのコードを追加することができます。ここでは

は、その背後にある10-亀「尾」を追う「頭」カメを持つためのサンプルコードを示します。それらの色は時間の経過と共に変化する。 (これを行うモデルの例は、NetLogoモデルライブラリのEarth ScienceセクションのFireモデルです。)

+0

は、私はあなたにも頭を尋ね内にこれを使用することができると思う:パッチここに頼む[スプラウト-尾を1]色の – Marzy

+0

あなたは色の色を設定することができ、それぞれの動きに、亀の初期の色が白に設定した場合 - 1これは退色効果を示します – Marzy

+1

パッチを 'sprout'すると、テールは見出しを失い、正確なxcorとycorは' hatch'を保存します。 –

4

@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 
2

追加のカメを使用しないで別のアプローチがあります。私はそれを様々な目的のために含める - 私はセスのアプローチを先に進めることを勧めます。

この方法では、各カメは以前の位置と見出しの固定長リストを保持し、最後の位置から抜き出します。このアプローチにはいくつかの不要なアーティファクトがあり、追加のカメを使うほど柔軟ではありませんが、より大きなモデルに役立つより少ないメモリを使用すると思います。

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 
関連する問題