6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JuliaAdvent Calendar 2020

Day 19

アニメーションライブラリJavis.jlを試す!

Last updated at Posted at 2020-12-19

Juliaアドベントカレンダー19日目です。

Javis.jlという簡単にアニメーションを作成できるライブラリを使っていきます。

導入

例のごとく

julia> ]add Javis
julia> using Javis

で使えるようになります。

LaTeXを使いたいのであれば、


> npm install -g mathjax-node-cli
julia> ]add LaTeXStrings
 

で使えるようになるようです。

他に、画像処理用のモジュールとして、ImageIO QuartzImageIO ImageMagick等必要に応じて追加が必要なようです。

まずは簡単な例を動かす!

Javis.jlのExampleからJuliaのロゴを描くサンプルを実行してみます。

上記実行した感じ特に問題なく、動きました。

julia_logo_dft.gif

基本的な使い方

Video = video(width, height)で表示領域作成します。

あとは、作りたい図形を定義して、そこにアニメーションを付加していくだけです。


function ground(args...)
    background("white") # canvas background
    sethue("black") # pen color
end

# 100フレーム作成
Background(1:100, ground)
# 四角形作成
obj = Object((args...) -> rect(O, 50, 50, :fill), Point(100, 0))
# 0を起点に一回転
act!(obj, Action(1:50, anim_rotate_around(2π, O)))

Jupyter Notebookで動かす

このライブラリで、保存される成果物はgifです。

gifの表示は
display("image/gif", read(filename))でいけるため、それ使います。


function ground(args...)
    background("white") # canvas background
    sethue("black") # pen color
end

myvideo = Video(500, 500)

Background(1:100, ground)

obj = Object((args...) -> rect(O, 50, 50, :fill), Point(100, 0))

act!(obj, Action(1:50, anim_rotate_around(2π, O)))

display("image/gif", read(render(myvideo)))

javis_4QOj9kE.gif

Weave.jlで表示

Weave.jlでJavie.jlの機能を使いたいという特殊な場合があれば、以下ですればいいと思う。

    
    ```julia;echo=false;results="hidden"
    
    using Javis, Plots
    function ground(args...)
        background("white") # canvas background
        sethue("black") # pen color
    end
    
    myvideo = Video(500, 500)
    
    Background(1:100, ground)
    
    obj = Object((args...) -> rect(O, 50, 50, :fill), Point(100, 0))
    
    act!(obj, Action(1:50, anim_rotate_around(2π, O)))
    
    render(myvideo; pathname="sample.gif")
    
    ```
    
    ![Alt txt](sample.gif)

上のは、ターミナル表示も結果表示も切って、動的?に作られたgifを表示するためのものです。

いちいち、gifを作りなおして、再リンクしなおすのが面倒とかいう場合には使えるかもしれません。

例えば、自分のホームページ上にgifを使うって、いちいち書き出すのが面倒とか。

感想

基本的な動きはサポートされてるみたいなので、簡単なアニメーションを作成する時に敷居は低くなりそうですね。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?