class RSVGR::Samples::Grid

Public Class Methods

new(args = {}) { |inside,i,j| ... } click to toggle source
Calls superclass method
# File lib/rsvgr.rb, line 251
def initialize args = {}
    args[:fill_color] = "white"
    super
    if @xn*(@y2-@y1) > (@x2-@x1)*@yn
        y = (@x2-@x1)*@yn/@xn
        @y1 = (1-y)/2
        @y2 = (1+y)/2
    else
        x = (@y2-@y1)*@xn/@yn
        @x1 = (1-x)/2
        @x2 = (1+x)/2
    end
    w = (@x2 - @x1)/@xn
    h = (@y2 - @y1)/@yn
    [*0...@yn].product([*0...@xn]) do |i,j|
        self << cell = Group.new(
            x: @x1+j*w,
            y: @y1+i*h,
            scale_x: w,
            scale_y: h,
        )
        cell << Rect.new(stroke_color:"silver", stroke_width:0.1) if args[:grid]
        cell << inside = Group.new(
            x: 0.1,
            y: 0.1,
            scale_x: 0.8,
            scale_y: 0.8,
        )
        yield inside,i,j if block_given?
    end
end