[BlueLeaf1336]> PROBLEMS> RungeKutta>

jspringies 誤訳天国 dspringies

historyTOP

2006/09/18:作成

overviewTOP

LINK (Science/SF) にも示してありますが、

こんな感じで、xspringies という 質点バネ系シミュレーションプログラム の子孫達(多分)が、見目麗しく輝いています。xspringies は、X−Window 用なので触れません。これから機能ダウン翻訳(説明にそう書いてありました)版の JSpringies は Java アプレットなので、ブラウザで見ることができ気持ちが良いのですが見るだけです。

楽しさでいうと sodaplay ですが、ココではルンゲクッタ法を使った何かをやりたいんです。もちろん動作を見ただけで内部処理を想像でき創造できるならうれしいわけで、そうならないからこそ、ソースが公開されているものを Delphi に翻訳してとりあえずのたたき台にするというかお茶を濁したいわけで。

オリジナルの xspringies もソースは公開されています。ただ、JSpringies を書いた人は Java に翻訳することでクラス化されています。それに機能が少ない(見ることしかできない)ことも大きな理由なのですが、ソースが読みやすいので、JSpringies の方を Delphi に翻訳しました。

dspringies20060918.zip(351,524Bytes) ソースコードと実行ファイルと設定ファイル達(転載)です。

screenshotTOP

実行画面です。本当にほぼそのまま翻訳しているだけです。大まかな使い方は次の通り。

  1. リストボックスから適当にモデルを選択する
  2. 「Start」をクリック
  3. チェックボックスにチェックを入れたりはずしたり
  4. 「Stop」をクリック
  5. 1. に戻る

実行中にチェックボックスにチェックを入れたりはずしたりすると、動きが変わったり暴走したりへんな動きをしたりします。特に「adaptive step」については、他のソースもあまり理解できていませんが、その 30 倍は理解していませんので危険です。それも翻訳もとの説明にも「テストしていない」と明記してあるのに、まるまま翻訳したりして。

あと、元と違うのは「上下が反対になっている」点です。点対称・線対称のモデルだと気づきませんが、「person1.xsp (操り人形)」など上下に意味があるものを読み込んでみると一目瞭然です。

なのに、重力はちゃんと上下方向が正しくて、なぜ? とひと悩みしているところです。RungeKutta は当初の目的通り使用していて、非常に気持ちの良いいかにもコンピュータの仕事テイストなのでうれしいんですが、自分では何もしていないので、やっとスタート地点...

EOFTOP