問題2.50 – SICP(計算機プログラムの構造と解釈)その64

問題2.50

ペインタを水平に逆転する変換 flip-horiz

SICP 問題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度回転する変換

SICP 問題2.50 ペインタを反時計回りに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度回転する変換

SICP 問題2.50 ペインタを反時計回りに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)" のテキストエリアにコピペして描画させることができます。

計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
«
»