図形言語 On Browser

SICP 2.2.4の図形言語(picture language)をブラウザ上に実装したものです。

Opera 9.27,Firefox 2.0.0.14にてテストしました。残念ながらIEでは動きません。

Firefoxの場合ロード中に固まりますが、仕様です。Scheme処理系の速度はそう速くないため、高速なマシンが必要かもしれません。

開始する(重いよ)

Canvas size: 200x200 | 300x300 | 400x400 | - +

Command:

command history: prev(ctrl-left) next(ctrl-right)

Examples

; だいたいSICPのサンプルに準じてるはずです

; 基本要素
(draw wave)
(draw triangle)

; 変形
(draw (flip-vert triangle))
(draw (flip-horiz wave))

; 合成
(draw (beside wave triangle))
(draw (below wave triangle))

; 繰り返し
(draw (corner-split wave 4))
(draw (right-split wave 4))

; 色
(draw (red-painter wave))

(draw (green-painter wave))

(draw (blue-painter wave))

(draw (colored-painter wave (rgb 128 100 200)))

(draw (corner-split (multi-colored-painter wave) 4) ; 描画のたび、red,blue,greenを交互に使う

; 組み合わせ
(draw (corner-split (multi-colored-painter wave) 2))

定義されている関数の詳細については、図形言語ソース(scheme)、を参照ください。

操作

Ctrl-Enter
実行
Ctrl-Left
コマンドヒストリ戻る
Ctrl-Right
コマンドヒストリ進む

エラーメッセージが見にくいですが、がんばってください

説明

ブラウザ上で動かせる図形言語です。javascriptによるScheme処理系を使用して実装しています。描画にはCanvas要素を使用。

draw手続きを使うことでペインターを描画できます。

定義されているペインターはwave、triangleの二種類(あと合成図形としてwave2、wave4も)。 残念ながら画像をペインターにすることはまだできません(変形処理がめんどう。Canvasの能力的にはじゅうぶん可能だが)。

定義されている操作は(corner|up|right-split painter n), (flipped-pairs painter), (squash-inwards painter) など。 もちろん自分で新しい操作/ペインターを定義することが可能です。 詳細はソース参照のこと。

ソース

使用ライブラリ

つくったひと

id:gnarl

説明エントリ:SICP 2.2.4の図形言語をブラウザ上に実装してみた