3Dの図を描くのにMaximaを使ってるのですが、そんなに複雑な図ではないはずなのにすぐにハングります。まぁ、他のツールでの解決方法がわからなかったのでMaximaにしてるほどなんだから、それなりにハードな処理なんだろうなぁ。
でも、Maximaって中間のデータってどこにキャッシュしてるんだろ?
もしかして全部内部データ?
まぁ、LISP処理系だから、みんなリストとしてメモリー上に展開しててもおかしくはないと思いますが。
いや、Maximaにメモリークリアーのコマンド Kill(All); というのがあるんですけど、それだけではだめで、さらに処理系のリセット(処理系を落とすことなく行えるようになっている)をしたりしたんですけど、それでもゴミが残るみたいで。
それでてっきり中間ファイルをどっかに作ってるんだと思ったんですが。。
でも、どこにも中間ファイルを置いてる気配がないんですよ。
GCをどのようにしてるかわからないのですが。
ちなみに、今使ってるバージョンはGNU CLisp上にのっかってるみたいです。色んなCommon LISP処理系の上にのっけることができるみたいですね。
で、お絵描きの方ですが、最初は複数の図をバッチ処理で作成しようとしたのですが、上記のメモリー処理の問題っぽいやつのせいで、結局一個づつ処理することになりました。
そして、毎回Kill(All); してからリセットして、それからスクリプトを読むということをやって、なんとか回避しました。
まぁ、どっちにしろ、表示範囲やらグリッドの粗さのパラメーターなどをいじりながら作図しないといけないので、そうせざるを得なかったのも事実なんですが。
図はgnuplotで描画するようになってるんですが、画面上をマウスでドラッグすることで回転させたりすることができます。
ところが、やっぱりデーターが重いせいかこれもハングります。
その度に再起動。
ある程度はアングルはあきらめ。
(実際はスクリプトでアングルを決められるみたいなんですが。。)
バッチ処理の子バッチの処理もうまくいきませんでしたね。
何故かカレントディレクトリーをみつけられないんです。
ネットで見ると、system("cd"); でカレントディレクトリーを取得できるはずなんですが、どうにも結果が 0 になってて。
カレントディレクトリーの移動は ?xchdir("/foo/bar/"); みたいにしてできるみたいなんですが、そうしたあとでもカレントディレクトリーを取得できません。
何故?
子バッチ自体は色々とロードする方法があるみたいですね。load("foo.mc"); とか。
LISP処理系なのに、記法がLISPと違っているので結構やりにくいです。
(確かLISP記法でもできたような気がするのですが。第一、内部には処理用のLISPファイルがいっぱいあるし。。)
ふみゃ。
Pixivで公開されてたやつがあって、それで気になったのですが。
なんかShimejiってフリーウェアがあるみたいですが、最新版が2012年のものになっていたし。
Java 6 の run time動くのね。
Jeva 6はまずくないか?
同梱のexeは動かなかったですが、jarファイルをたたいたら動くみたいです。
ソースが同梱されていたので、Eclispeに食わせてみたら、うわ。Warningだらけだし。
ちょっとquick hackは無理そう。
これって、Windows 98時代にあった neko と似た感じのやつですね。
あの当時はマウスを追っかけるキャラのソフトがいっぱいあったよなぁ。
その祖先はやっぱりxeyeなのかなぁ? X上で動く、マウスカーソルの方向に目が向くやつ。あれってまだ標準で入ってるの?
とりあえず、shimeji動いてるみたいなんですが、jre7とかjre8でも動くもんなんですか?
確か、デフォで動くのは64bit版のjre8になるように設定してあったはずなんですが。
ソースであれだけwarningが出てたのに、動くものなんだ。
でも、どっかバグってるんじゃないかなぁ。。。
うわ。キャラがどんどん分裂してくるんだ。
何を今更なのかもしれませんが。。
jre6そのものはセキュリティー上の問題でサポートが切られてるのですけど、大丈夫なんだろうか。
というわけで、とりあえず終了。
ソース追ったら勉強になるかなぁ?
いや、その前に根気が。。