問題2.50 – SICP(計算機プログラムの構造と解釈)その64
2009年01月09日
問題2.50
ペインタを水平に逆転する変換 flip-horiz
(define (flip-horiz painter) (transform-painter painter (make-vect 1.0 0.0) (make-vect 0.0 0.0) (make-vect 1.0 1.0))) ((flip-horiz wave) canvas-frame) gosh> 260.0,340.0,240.0,400.0 140.0,340.0,160.0,400.0 260.0,340.0,240.0,260.0 140.0,340.0,160.0,260.0 160.0,260.0,100.0,260.0 240.0,260.0,280.0,260.0 100.0,260.0,0.0,140.0 160.0,180.0,0.0,60.0 160.0,180.0,100.0,0.0 200.0,120.0,160.0,0.0 280.0,260.0,340.0,240.0 280.0,240.0,340.0,160.0 340.0,240.0,400.0,340.0 340.0,160.0,400.0,260.0 280.0,240.0,260.0,200.0 260.0,200.0,300.0,0.0 200.0,120.0,240.0,0.0 #<undef>
ペインタを反時計回りに180度回転する変換
(define (rotate180 painter) (transform-painter painter (make-vect 1.0 1.0) (make-vect 0.0 1.0) (make-vect 1.0 0.0))) ((rotate180 wave) canvas-frame) gosh> 260.0,60.0,240.0,0.0 140.0,60.0,160.0,0.0 260.0,60.0,240.0,140.0 140.0,60.0,160.0,140.0 160.0,140.0,100.0,140.0 240.0,140.0,280.0,140.0 100.0,140.0,0.0,260.0 160.0,220.0,0.0,340.0 160.0,220.0,100.0,400.0 200.0,280.0,160.0,400.0 280.0,140.0,340.0,160.0 280.0,160.0,340.0,240.0 340.0,160.0,400.0,60.0 340.0,240.0,400.0,140.0 280.0,160.0,260.0,200.0 260.0,200.0,300.0,400.0 200.0,280.0,240.0,400.0 #<undef>
ペインタを反時計回りに270度回転する変換
(define (rotate270 painter) (transform-painter painter (make-vect 0.0 1.0) (make-vect 0.0 0.0) (make-vect 1.0 1.0))) ((rotate270 wave) canvas-frame) gosh> 340.0,260.0,400.0,240.0 340.0,140.0,400.0,160.0 340.0,260.0,260.0,240.0 340.0,140.0,260.0,160.0 260.0,160.0,260.0,100.0 260.0,240.0,260.0,280.0 260.0,100.0,140.0,0.0 180.0,160.0,60.0,0.0 180.0,160.0,0.0,100.0 120.0,200.0,0.0,160.0 260.0,280.0,240.0,340.0 240.0,280.0,160.0,340.0 240.0,340.0,340.0,400.0 160.0,340.0,260.0,400.0 240.0,280.0,200.0,260.0 200.0,260.0,0.0,300.0 120.0,200.0,0.0,240.0 #<undef>
各出力結果を "図形言語 描画スクリプト(with Canvas and JavaScript)" のテキストエリアにコピペして描画させることができます。
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542