[StarLogo/fujim2]
[ トップ ]   [ 差分 | バックアップ | リロード ]   [ 一覧 | 単語検索 | 最終更新 | ヘルプ ]

CONTENTS

  • FrontPage
  • StarLogoについて
  • こんな人におすすめ
  • StarLogoのインストール
  • StarLogoの簡単な入門
  • StarLogo TIPS
  • StarLogoのサンプル解説
  • StarLogo関連リンク集
  • OpenStarLogo
  • StarLogoTNG
  • StarLogoNova
  • 実験・研究
  • Petit-Hack
  • 文献
  • ご意見ご感想など
  • このページについて

最新の10件
2019-12-28
  • タートルグラフィックス
2019-01-27
  • FrontPage
  • StarLogo日本語化
  • Petit-Hack
  • このページについて
  • コメント/ご意見ご感想など
  • ご意見ご感想など
  • 文献
  • 実験・研究
  • こんな人におすすめ

画像出力

Last-modified: 2019-01-27 (日) 03:29:24 (1518d)

StarLogo TIPS

outanim.gif

シミュレーションの途中経過のタートルやパッチのスナップショットを PNG画像としてファイルに書き出すことができます(上はそれをまとめた 動画GIF画像)。


  • ファイル書き出しの手続き
  • 確認プログラム
  • 外部変数の利用
  • 手続き
    • 初期設定
    • シミュレーション実行
    • フレームの画像書き出し
    • GUI(ボタン)
  • 実行
    • 実行結果
  • GIFアニメーション

ファイル書き出しの手続き †

StarLogoでのファイル書き出し(Export)のための手続きはいくつかありますが、 ここではファイル名を引数指定して書き出す

export-picture-turtles-and-patches-name :filename

という手続きを使って、シミュレーション経過のタートルとパッチのスナップショット画像を作成し、保存するプログラムを作ってみます。

※確認バージョンは2.2です。

↑

確認プログラム †

ここでは、次の様な手続きをStarLogoで書きます

  • パッチの中心部にタートルを1000匹生成
  • 次の処理を100回繰り返す
    • それぞれのタートルに前に1だけ進むように指示する
    • 20回に一度のタイミングで1枚のPNG画像を書き出す

ここではタートルへの命令が基本命令1つだけなので、全ての 手続きをObserverProcedureとして書きます。

↑

外部変数の利用 †

今回作成のキーフレームアニメーションのために、シミュレーションのステップを 次の様なグローバル変数に入れることとします。

globals [ s-frameno ]
↑

手続き †

次の様な手続きをControl CenterのObserver Proceduresのエリアに書きます。

↑

初期設定 †

init手続きは、グローバル変数の初期化と、パッチ・タートルの初期化、そして、 タートルを1000匹生成します。

to init
     set s-frameno 20
     ca
     crt 1000
end
↑

シミュレーション実行 †

go手続きは、シミュレーションとはいえない単純な命令 fd 1をタートル に対して命令します。そしてこの処理を10回繰り返します。 繰り返しの最後にスナップショット画像を保存するための snap-shot手続き を読んでいます。

to go
   dotimes [:i 10][
        ask-turtles [ fd 1 ]
        snap-shot
   ]
end
↑

フレームの画像書き出し †

これが、このTipsのメインの手続きです。

to snap-shot [

     set s-frameno (s-frameno + 1) ;; フレームのカウントアップ

     ;; 数字を5桁にあわせ、ファイル名の長さを一定にするための処理

     let [:str to-string [s-frameno] ]
     dotimes [:i (5 - (length :str))] [
         set :str (to-string ["0" :str])
     ]
     let [:filename to-string ["outpic" :str] ]

     ;; :filenameで画像を書き出す
     export-picture-turtles-and-patches-name :filename
  ]
end
↑

GUI(ボタン) †

initのためとgoのためにそれぞれ一つずつボタンを作成します。どちら もObserver用であることに注意してください。

↑

実行 †

初期設定ボタンを押した後に、実行ボタンを押してください。

Starlogo-exportpic-window0.PNG
Starlogo-exportpic-window2.PNG
↑

実行結果 †

特に特別な動きを行うようにはなっていません。goボタンを押してgo手続きを 起動すると、それぞれのタートルが10歩前に移動するアニメーションをみること ができ、同時に、適当なディレクトリ(作業ディレクトリとしてStarlogoが現在 持っている場所)へ、ファイルが保存されます。


outpic00001.png

outpic00002.png

outpic00003.png

↑

GIFアニメーション †

ここでは簡易的に、PNG形式ででている画像を動画GIFとして1つのファイルに まとめます。この作業にはいろいろな方法があると思いますが、今回は、 cygwin上で、convertコマンドを利用して行いました。

$ convert *.png outanim.gif

これだけです。このページのトップにそのアニメーションGIF画像を 貼り付けています。


Counter: 375, today: 2, yesterday: 1

Link: StarLogo TIPS(1518d)

添付ファイル: fileStarlogo-exportpic-window2.PNG 224件 [詳細] fileStarlogo-exportpic-window0.PNG 221件 [詳細] fileoutpic00003.png 225件 [詳細] fileoutpic00002.png 217件 [詳細] fileoutpic00001.png 222件 [詳細] fileoutanim.gif 223件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-01-27 (日) 03:29:24 (1518d)
Link: StarLogo TIPS(1518d)
Site admin: anonymous

PukiWiki 1.5.0 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.6.40. HTML convert time: 0.015 sec.