SSブログ

また新しいものを始めてしまう [考え中の問題]

途中のものが大量にあるのにまた、新しく始めたいことができてきた。なにを始めるか、はまた明日にして、その前に途中のやつを知らん顔してなかったことにするのではないか、と思われると困る(いや、それは単にプライドの問題であって誰も困らないんだけど)ので、新しいことを始める前に正々堂々と棚卸しをしておく。ほぼ2年前にも一度棚卸しをしてるけど、なにが新しくなってるのか、も確認。

1.1  棚卸し

途中でほったらかしになっているアイテムとして
  • プログラミング関連
    • Mac専用プロットライブラリ
    • ドローブラシのようなBezier曲線を描くアプリ
    • 光学薄膜設計ソフトの設計
    • EZ-USB FX2を使ったMac用USBデバイス
  • 数学/物理学関連
    • ペーパークラフトの数学
    • FDTDのアルゴリズムの整理
    • Fourier領域の光
  • それ以外
    • 変調弦によるバッハ編曲
がある。うわ、多い。まあ、しょせん暇つぶしのお遊びなのでできなかったからと言って誰に迷惑がかかるわけでもない。

1.1.1  Mac専用プロットライブラリ

Mathematicaのプロットの概念をAPIのモデルに借用したライブラリを作ろうと言うもの。

ほぼ構造は決まっているけど3次元プロットを実現するためのアルゴリズムで一部今の設計では実現困難な部分があることに気がついたところで止まっている。完全にマネをしないで適当なサブセット仕様をまとめてそれに従って実装を始めたほうがいい。過不足のない仕様をどうするか、というのが悩みどころ。悩んでいるうちにMathematica5から6に、そして今は7になってる。

1.1.2  ドローブラシのようなBezier曲線を描く

タブレットで線を引くとビットマップではなくBezier曲線でブラシ線の外形ができるようなアプリを作ろうと言うもの。

これもほぼモデルはできている。やはり一点だけ、外形が正則でない(これは僕の勝手な名前。線としては微分可能なのに外形線に微分不可能な折れ曲がりが発生すること)場合の処理をどうするか、で止まっている。それが解決すれば実装に入れる。ただし、アプリ全体の設計はやってない。特に線を一本引き終わるまで線の外形は確定できないけど、それでは線を引いている途中何も見えないということになる。それではUIとしてまずいので何か考えないといけない。

1.1.3  光学薄膜設計ソフト

光学薄膜を最適化により自動設計するアプリ。最適化ルーチンはgslを使って、プロットは上のライブラリができたら流用する、という予定。

これは光学計算の実装に突入してMathematicaに書いた答え合わせのパッケージと吸収のない場合には計算結果が一致するところまでは来ているが、吸収がある場合は、透過率が1を超えたりする。単に虚数部の符号の問題ではなくてどこかが間違っている。薄膜の計算部分のクラス設計が複雑になりすぎていてあまり美しくなくなってしまってデバグが進まず、それでちょっと挫折気味。クラス設計をやり直さなければいけない。

1.1.4  EZ-USB FX2を使ったMac用USBデバイス

Cypress社のUZ-USB FX2を使ってMac用のUSBデバイスを自作するためのプラットフォームを作ると言うもの。

ブログにまとめてないけどEZ-USB FX2に8052のコードをファームとして落として8052単体として動作させるところまでは行った。I/Oに出力してレベルがちょこちょこと変わるとかいうことはやったけど、USB機器として動作させるところまで行ってない。そのためにはデスクリプタを書かなければならないが手動でやるとどうしても間違うらしくて認識されない。そこでデスクリプタ記述用のアプリを作りかけて、止まっている。

まあこれは難しい障害があるわけではなくて単に量をこなせばいい。しかしそのためには気力が必要。

1.1.5  ペーパークラフトの数学

複数の任意の可展面が交差した展開図を作る。数学の一般論はわりと簡単に終わった。結論としては、ある積分の数値評価に集約されることがわかった。例として中途半端な向きに交差したふたつの円錐の展開図を描いてみた。ビットマップではないので、数値積分の精度まで展開図の精度を上げることができる。

最終的にアプリにできればいいけどそのためには3次元形状のエディタが必要になる。それまで作るのは大変。これはちょっとしょうがない。例えば3次元空間内の可展面を表すテキストフォーマットを決めてそれを読み込んで展開図を出力する、というのはできるだろうけど、それでは頭の中に3次元のモデリングができる人しか使えない。

1.1.6  FDTDのアルゴリズム

FDTDのアルゴリズムを整理してOpenMPを使って実装しようというもの。

これもYeeセルによる差分計算の部分の整理はできた。実際に計算するためには境界条件を考慮できないといけないが、そこのところでちょっと思うことがあって実領域とFourier領域の話に転化している。これは実装にはほど遠く、まだまだ先は長い。

1.1.7  Fourier領域の光

FDTDを考える過程でいかに光をFourier領域でしか考えてこなかったか、というのに気がついた。知ってる人にとっては当たり前なんだろうけど、FDTDで金属媒質(誘電率に虚数部を持つ)を扱うということはどういうことか。その観点からFourier変換とLaplace変換の関係を明らかにしようと思って進めてきた。ところがうまく結論づけられない(式が一致しない)。考え方がどこか間違ってるのか?

1.1.8  変調弦によるバッハ編曲

BWV998、BWV1006a、BWV996は一応全曲終わっている。しかしはじめの頃のはLilypondのバージョンが古くてレイアウトがずいぶん違って見える。最新のバージョンでやり直し初めて、音符の位置が全然違って運指をIllustratorでつけ直すのが面倒でまだバージョンが統一されていない。そんなことしてるうちにまたLilypondの方が変わってしまうかも。

1.2  いちおう一段落ついたもの

それとはべつに一段落したものは
  • 偏光計算のMathematicaパッケージ
  • 空間フィルタを持つ光学系のFraunhofer回折を使ったシミュレーション
  • NSSetを使った232 ×232セル平面でのLife Gameの実装
  • QTKit captureの使い方の整理 → 軽量DVカメラビューアの実装
  • 曲がった壁を持つ迷路を生成するアプリ
  • 近軸光線追跡のMathematicaパッケージ
こう並べると比較的簡単なものはさっさと終わっているということか。

Life Gameはおそらく同じような考え方で実装されたソフトもたくさんあるので、ここでは単にNSSetを使えば簡単になるよ、という実例でしかない。ということでこれをちゃんとしたアプリにすることはもうない。

回折のシミュレーションはあまりにも対象が特殊なのでもういいや。偏光計算はMathematicaのパッケージとしてはまとまりがいいのでこれ以上やることはない。QTKit Captureは基本的なところはわかったので何か使うネタが思いつくまで塩漬け。

迷路生成については、僕自身はこれに使ったアルゴリズムは結構面白いと思ったんで、迷路生成の先達(英語版Wikipediaの「Maze Generation Algorithm」のNon-Cell-Basedにあげられているサイト)の何人かにメールしたけど、たいした反応はなかった。ここにあるこんなのに較べればスマートだと思うんだけど。これも今のところ発展させる予定はない。

近軸光線追跡は目標を達したけど、このあとは実光線追跡のパッケージも作りたい。先のありそうなのはこれくらいか。
nice!(0)  コメント(1)  トラックバック(0) 

nice! 0

コメント 1

Sialis

沒有醫生的處方
we recommend cheapest cialis http://cialisvonline.com/ Cialis generico online
by Sialis (2018-04-15 06:15) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立10/22献立10/23 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。