class Smalruby::Canvas
お絵かきを表現するクラス
Constants
- DEFAULT_COLOR_OPTION
@!endgroup
- DEFAULT_RECT_OPTION
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
# File lib/smalruby/canvas.rb, line 5 def initialize(options = {}) defaults = { x: 0, y: 0, width: Window.width, height: Window.height, color: nil, } opts = Util.process_options(options, defaults) opts[:costume] = Image.new(opts[:width], opts[:height]) super(opts.reject { |k, _| [:width, :height, :color].include?(k) }) fill(color: opts[:color]) if opts[:color] end
Public Instance Methods
box(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 43 def box(option) opt = process_rect_option(option) image.box(opt[:left], opt[:top], opt[:right], opt[:bottom], Color.smalruby_to_dxruby(opt[:color])) end
box_fill(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 50 def box_fill(option) opt = process_rect_option(option) image.box_fill(opt[:left], opt[:top], opt[:right], opt[:bottom], Color.smalruby_to_dxruby(opt[:color])) end
circle(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 57 def circle(option) opt = process_circle_option(option) image.circle(opt[:x], opt[:y], opt[:r], Color.smalruby_to_dxruby(opt[:color])) end
circle_fill(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 64 def circle_fill(option) opt = process_circle_option(option) image.circle_fill(opt[:x], opt[:y], opt[:r], Color.smalruby_to_dxruby(opt[:color])) end
draw_font(option)
click to toggle source
@!group ペン
# File lib/smalruby/canvas.rb, line 23 def draw_font(option) defaults = { x: 0, y: 0, string: "", size: 32 }.merge(DEFAULT_COLOR_OPTION) opt = process_optional_arguments(option, defaults) image.draw_font(opt[:x], opt[:y], opt[:string], new_font(opt[:size]), Color.smalruby_to_dxruby(opt[:color])) end
fill(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 71 def fill(option) opt = process_optional_arguments(option, DEFAULT_COLOR_OPTION) image.box_fill(0, 0, image.width, image.height, Color.smalruby_to_dxruby(opt[:color])) end
line(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 36 def line(option) opt = process_rect_option(option) image.line(opt[:left], opt[:top], opt[:right], opt[:bottom], Color.smalruby_to_dxruby(opt[:color])) end
Private Instance Methods
process_circle_option(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 113 def process_circle_option(option) defaults = { x: 5, y: 5, r: 5 }.merge(DEFAULT_COLOR_OPTION) process_optional_arguments(option, defaults) end
process_rect_option(option)
click to toggle source
# File lib/smalruby/canvas.rb, line 102 def process_rect_option(option) defaults = DEFAULT_COLOR_OPTION.merge(DEFAULT_RECT_OPTION) opt = { left: option[:x1], top: option[:y1], right: option[:x2], bottom: option[:y2] }.merge(option) process_optional_arguments(opt, defaults) end