渦巻く幻燈

swift playgrouds で初めて書いたプログラム。

../../../_images/RDS-02-11.png

機能はランダムドット画像を少しだけ回転と拡大を加えた図を表示するだけ。

playgroudsは書き捨ての実験プログラムにはちょうど良い手軽さ。昔読んだけど試さなかったアルゴリズムの本のコードを色々と実験したら面白そうだ。

回転を大きくすると螺旋を認識できなくなる

同じランダムドット画像を2枚重ねて見ているような図。重ね方は矩形の真ん中を中心点にして、回転、拡大している。 そのため、プログラムコード自体にも、出力した画像データにも螺旋構造は存在しない。

../../../_images/RDS-00-11.png

回転角度:0 , 拡大率:1.1

回転はなし、拡大だけの場合は、「爆発している感」がある。

../../../_images/RDS-02-11.png

回転角度:2 , 拡大率:1.1

回転2度、拡大の場合は、「渦巻いてる感」が出てくる。

../../../_images/RDS-03-11.png

回転角度:3 , 拡大率:1.1

回転2度、拡大の場合は、「渦巻いてる感」が出てくるが、角度2と対して変わらないかな?

../../../_images/RDS-10-11.png

回転角度:10 , 拡大率:1.1

回転10度、拡大の場合は、「渦巻いてる感」が真ん中の方だに存在する。 真ん中の方がドットの間の間隔が狭いからかもしれない。 爆発している感じもなくなる。

../../../_images/RDS-20-11.png

回転角度:20 , 拡大率:1.1

回転20度、拡大の場合は、「渦巻いてる感」も、「爆発している感」もさっぱりなくなる。

図形とは認識できないランダムドットでも条件が加われば「フレーザーの渦巻き錯視」と同じような錯覚が生じているように見える。

参考とソースコード

プロジェクトファイル

sphinx1.6でpdf出力できないのは私の設定ミスでしたその2

今度は、html出力時に動作がおかしい

“language = ‘ja‘“だとsphinxcontrib.tikzの出力がエラーになる。

仕方がないので、makefileに以下のような記述を追加してエラーを回避。

# html出力でlanguageがjaだとTikZ Extentionがエラーを吐く。理由は不明。
html: Makefile makeBB
    @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -Dlanguage='en'

# こっちは素直にbbを作ってからコンパイル
latexpdf: Makefile makeBB
    @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

# TikZ使用時にxbbがないエラーを回避するために、画像ファイルにはxbbを作成しておく。
# (macPortでインストールした場合は、自動でxbbを生成しない設定らしい)
makeBB:
    find ./source -name \*.png -or -name \*.jpg -or -name \*.pdf \
    | while read theFile; do extractbb $$theFile; done

latexもpythonもわかっていないので、原因は不明。

原因の予想

  1. sphinx1.6のLaTeXBuilder出力の方法がlatexmkを使うように変更になった。 (http://www.sphinx-doc.org/en/stable/builders.html#sphinx.builders.latex.LaTeXBuilder)

2. sphinxcontrib.tikzの中ではconfig.latex_engineで設定されているlatexを使っている。 (https://bitbucket.org/philexander/tikz/src/36f13083d61e91eb7cfea6f1ed959118749e371c/sphinxcontrib/tikz.py?at=master&fileviewer=file-view-default#tikz.py-245)

  1. sphinxcontrib.tikzの記述がlatexmkと衝突するような記述になっているかもしれない。

対策

makeファイルを変更する対策は小手先の対策すぎる。

私の目的には、tikzは強力すぎるのでもう少し単純な描画言語で画像にマークアップしたい。

sphinxcontrib.tikzのコードを修正するか、新たにextensionを作るかで迷う。

どっちらにしても、pythonは読み書きできないのでこれから勉強する必要がある。

プロジェクトファイル

sphinx1.6でpdf出力できないのは私の設定ミスでした

:doc:`../10/1c8b065d_3368_4c24_b50c_2f2045de0ac8`にて、sphinx1.6でpdf出力できないと書きました。

これは、間違いです。出来ます。

設定ミスしたところは、ファイルconf.pyの中のlanguage設定です。

jpとするのは間違い。

language = 'jp'

jaとするのが正しい。

language = 'ja'

jaはジャマイカではなくて、日本とのこと。

また、ビルドターゲットも変更があったようです。

以下のように、latexpdfjaを指定すると、エラーで止まります。./build/latex/makeにターゲット’all-pdf-ja’が存在しないとの事。

make latexpdfja

ビルドするには、以下のように、latexpdfを使用するだけで良い。

make latexpdf