SICP 2.2.4の図形言語(picture language)をブラウザ上に実装したものです。
Opera 9.27,Firefox 2.0.0.14にてテストしました。残念ながらIEでは動きません。
Firefoxの場合ロード中に固まりますが、仕様です。Scheme処理系の速度はそう速くないため、高速なマシンが必要かもしれません。
開始する(重いよ)
; だいたい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)、を参照ください。
エラーメッセージが見にくいですが、がんばってください
ブラウザ上で動かせる図形言語です。javascriptによるScheme処理系を使用して実装しています。描画にはCanvas要素を使用。
draw手続きを使うことでペインターを描画できます。
定義されているペインターはwave、triangleの二種類(あと合成図形としてwave2、wave4も)。 残念ながら画像をペインターにすることはまだできません(変形処理がめんどう。Canvasの能力的にはじゅうぶん可能だが)。
定義されている操作は(corner|up|right-split painter n), (flipped-pairs painter), (squash-inwards painter) など。 もちろん自分で新しい操作/ペインターを定義することが可能です。 詳細はソース参照のこと。
説明エントリ:SICP 2.2.4の図形言語をブラウザ上に実装してみた