11/11の課題
- 自分の好きな図を描いてみてプログラムと実行結果の画面を
11/11の課題,質問に書き込みなさい.第3章の最後にある図でも良いし,自分で工夫して考えた図でも良い.
- 途中でiMac端末の画面を取り込んでpng形式のファイルに変換する必要がある.この方法は,
はいぱーワークブック「22.4.3.3グラブ」に書いてあるので,参照すること.はいぱーワークブックにあるように,スクリーン全体をキャプチャーしたり,選択部分だけをキャプチャーする分には問題ないようだが,ウインドウを選択してキャプチャーするとうまくいかないようだ.
- CFIVEの掲示板に画像を貼る方法は,FAQ「CFIVE掲示板機能」の「掲示板の本文中に画像を張り付けたいのですがどうすればよいですか?」にある(「#ref(ファイル名)のファイル名には拡張子(.png, .jpeg, .gif)はつけないことに注意).練習のために,
テスト用掲示板に書き込むと良い.
- ほかに,講義で用いた練習のうちで自分が解いたプログラムとその説明,第6回の講義の感想,改善意見,それ以外の教科書の練習問題を書いても良い.
- 12/1(火)までに投稿された作品は12/2(水)の講義の際にコンテスト(相互評価)を開催する.
昨年度の作品
昨年度の作品が11/12の課題にある.
ヒント
一から作るのが面倒な人は,以下のプログラムの(1)の部分の穴を埋めて
a[y][x]に点(x,y)でのR,G,B値からなる大きさ3の配列を入れるコードを書く
ので良い.
include Math
def make1d(n)
a=Array.new(n)
for i in 0..n-1
a[i]=0
end
a
end
def make2d(h,w)
a=Array.new(h)
for i in 0..h-1
a[i]=make1d(w)
end
a
end
def make3d(h,w,c)
a=Array.new(h)
for i in 0..h-1
a[i]=make2d(w,c)
end
a
end
def show_color_picture()
a=make3d(50,50,3)
for y in 0..49
for x in 0..49
# 穴を埋める.
#a[y][x]にRGB値からなる大きさ3の配列(要素は0から1までの実数)を入れる
(1)
end
end
show(a)
end
たとえば,(1)のところに
a[y][x]=[x/49.0,1.0-y/49.0,1.0]
と入れると,
- 左上(x=0, y=0)の色が[Red,Blue,Green]=[0,1,1]で水色,
- 右上(x=49,y=0)の色が,[Red,Blue,Green]=[1,1,1]で白,
- 左下(x=0,y=49)の色が,[Red,Blue,Green]=[0,1,0]で青,
- 右下(x=49,y=49)の色が,[Red,Blue,Green]=[1,1,0]でマゼンタ
になり,その間を補間した
のような図が得られる.
ヒント
乱数を使いたい人はrand(n)で0以上n-1以下の整数が返る.
irb(main):014:0> rand(3)
=> 1
irb(main):015:0> rand(3)
=> 2
irb(main):016:0> rand(3)
=> 0
実数の乱数は rand() で0.0以上1.0以下の一様乱数が返る.
irb(main):017:0> rand()
=> 0.65583344076718
irb(main):018:0> rand()
=> 0.336235732920702
irb(main):019:0> rand()
=> 0.324077367496
実数値を整数値に変換するには,「式」の後に .to_i() をつける.
irb(main):020:0> x=2.9
=> 2.9
irb(main):021:0> x.to_i()
=> 2
irb(main):022:0> x=-2.9
=> -2.9
irb(main):023:0> x.to_i()
=> -2
四捨五入ではないので,注意が必要.