ruby-processing3D描画構文、box, sphere

 今回は、processingのP3D*1オプションを指定して3D描画を実行してみましょう。

rp5 create 3d_sketch.rb 800 600

size

 size(width, height, option)
本関数のoptionに「P3D」を指定してやることにより、描画が2Dから3Dに切り替えることが出来ます。

light

本関数を使用することにより、光源*2が設定されます。

box

 box(size)
本関数を使用することにより、立方体を描画できます。

sphere

 sphere(size)
本関数を使用することにより、球体を描画できます。


サンプルコードは、以下になります。

# My 3d Sketch

class My3dSketch < Processing::App
  
  def setup
    size 800,600,P3D
    no_stroke
  end
  
  def draw
    background 0    #draw関数内で描画毎に、背景を塗りつぶしてやる必要があります
    lights          #draw関数内で描画毎に、光源を設定する必要があります
    
    translate width/3, height/2, 0
    push_pop{
      rotate_y PI/3*frame_count/180
      rotate_x PI/4
      box 100
    }
    
    translate width/3, 0, 0
    push_pop{
      translate 0, 100*cos(radians(frame_count)), 0
      sphere 50
    }
    
  end
  
  def push_pop
    push_matrix
    yield
    pop_matrix
  end
  
end

My3dSketch.new :title => "My 3d Sketch", :width => 800, :height => 600
rp5 run 3d_sketch.rb

*1:残念ながらソフトウェア3D描画のオプションですw;

*2:3Dオブジェクトに陰影がふかされます。