言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

ThingLab

最初のデモ
第1ペインから第4ペインまで FixedBridge - Picture - move - Point
第5ペインのアンカーを動かす

Alan Boning の論文を元にサンプルを作成

ThingLab のテキストとして、元になった論文
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory - Alan Borning 1981
と言うものがありますが(このURLは忘れてしまった!)これを元に解説した
http://www.2share.com/thinglab/ThingLab%20-%20Chapter%202.html
があります。このサイトを見ながら ThingLab を実験してみます。

  • ウインドウの小窓の意味
    • 第1ペイン クラス名
    • 第2ペイン 第5ペインの見かけを決める
    • 第3ペイン 操作
    • 第4ペイン 操作対象のクラス名
    • 第5ペイン(下のペイン) 図やコードが表れる。
  • クラス Shiaku を作成する
    • GeometricObject が無いので ThingLabObject のサブクラスとして作る
    • 第1ペイン右クリック - Define new thing - Shikaku と入力
    • 第1ペインから第2ペインまで、 Shikaku - picture - insert - ThingLabLine を選択
    • カーソルを下ペインに持っていくと、後は直感的に線が描けると思います。
    • ここで、例えば閉じた四角を書いてみる。
    • 第2ペインで structure を選択すると、ちゃんと定義が出来ているのが分かる。
  • 幾何学法則の実験
    • 任意の四角形において、ある辺の中点から隣接した辺の中点に線を引くと、その線は平行四辺形になる。(知らんかった。。。)
    • この法則を実験するために、MidPointLine というクラスを使います。第1ペインで MidPointLine を選択して確認してみよう。
    • 今度は、SHousoku というクラスを作る(やり方はさっきと同じ)
    • SHousoku - picture - insert - Shikaku を選択してから下ペインをクリックすると四角がコピーされる。
    • 次に、第3、第4ペインで、constrain - MidPointLine を選択
    • 四角の各辺をクリックすると、不思議な事に丁度中点にポイントが置かれる。
    • constrain を選択していると、図形挿入時にくっつきます。
    • 最後に中点同士を ThingLabLine で結びます(insert - ThingLabLine)。
    • これで完成。move - Point を選択してから四角の各点を動かしてみると、中の四角形が平行を保つのが分かります。
    • はっきり言ってすごい!