ソース
誰かの役に立ちますように。
#!/usr/local/bin/ruby require 'vr/vruby' require 'vr/vrcontrol' #----------------------------------------------------- # グラデーションを表示するコントロールです #----------------------------------------------------- class FractalCanvas < VRPanel include VRDrawable # キャンバスの幅 attr_accessor :width # キャンバスの高さ attr_accessor :height #------------------------------------------ # コンストラクタ #------------------------------------------ def construct @width = 500 @height = 500 end #------------------------------------------ # 自分自身に描画します #------------------------------------------ def self_paint w,h = 0 # 増分 dW = 256.0 / width dH = 256.0 / height # 描画開始 for w in 0..(width - 1) for h in 0..(height - 1) setPixel(w, h, RGB((w * dW).to_i , (h * dH).to_i, 127)) end end end end #----------------------------------------------------- # グラデーションを表示するクラスです #----------------------------------------------------- class FractalViewer < VRForm def construct self.caption = "グラデーション描くよ" addControl(VRButton, "button", "グラデーション描くよ", 20, 10, 250, 30) end public #----------------------------------------------------- # グラデーションを表示します #----------------------------------------------------- def button_clicked # 超ごり押しの処理 if (@button.caption != "グラデーション描いてるよ") @button.caption="グラデーション描いてるよ" addControl(FractalCanvas, "canvas", "canvas", 20, 50, 500, 500) end end private # ここにprivateのメソッドを書く end #----------------------------------------------------- # メインです #----------------------------------------------------- VRLocalScreen.start(FractalViewer, 200, 200, 600, 600)