2008年02月15日

square-limitを使ってみる

大学の課題が

「気の利いたpainter作ってsquare-limit使ってみ」



とのことなのでsquare-limitです。



square-limitは



たとえば

2008y02m15d_100858516.jpg
wave↑


waveとかいう読み込むべきものを読み込むときに勝手に読み込んだらしいものをsquare-limitにかけると

((square-limit wave 2) frm1) //waveにsquare-limitを変数2でかける



2008y02m15d_101519617.jpg

になるものがsquare-limitらしい



気の利いたpainterを作らないといけないわけですが

painterはここでいうwaveのことですね。




何を作ろうかと小一時間




めんどくさいので正n多角形で(死



(define (my-painter center r x next-sum end color) // center=中心点 r=半径 x=ラジアン
  (define (draw-circle center r x next-sum end)
    (if (> x end)
    nil
    (cons (make-vect (+ center (* r (cos x))) (+ center (* r (sin x)))) (draw-circle center r (+ x next-sum) next-sum end)
))
)
  (vects->painter
    (draw-circle center r x next-sum end)
#f 0 color ))


中途半端に抽象化。これぞ性格です。

とりあえずsquare-limitかけてみる。


その前にπを定義しないと多角形書けない。


π=4×arctan1なので
(define pi (* 4 (atan 1.0)))


ではsquare-limitをかけます


((square-limit (my-painter 0.5 0.5 0 (/ pi 20) (* 2.0 pi) 'black) 3) frm1)


20で割ってますが円を作るということで適当な値です。円に見えますが厳密には正40角形です。

2008y02m15d_173517342.jpg



予想通り味気ない。

中心点やら弄って再度トライ



2008y02m15d_173852287.jpg



その上に半径弄って重ねてしまえ



2008y02m15d_174008388.jpg



ついでに中心点も




2008y02m15d_174136654.jpg



ここまできて気づいた


ちょっと立体チックにできるのでは





で、半径と中心点を0.1ずつ下げながら黒と白を繰り返してみた


2008y02m15d_174814247.jpg


キモチワルイ


まぁでも一応立体ってことになるのかな。



色を整えたら鉛筆の群れみたいになりそう。




2008y02m15d_181051411.jpg



不覚にも鉛筆



  
  





この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。