最初のデモ
第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 を選択してから四角の各点を動かしてみると、中の四角形が平行を保つのが分かります。
- はっきり言ってすごい!