11/11の課題


昨年度の作品

昨年度の作品が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]
と入れると, になり,その間を補間した

のような図が得られる.

ヒント

乱数を使いたい人は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
四捨五入ではないので,注意が必要.