[cairo-commit] rcairo/packages/cairo/lib/cairo/context circle.rb,
NONE, 1.1 quad.rb, NONE, 1.1 rectangle.rb, NONE, 1.1
Kouhei Sutou
commit at pdx.freedesktop.org
Wed Nov 8 18:08:17 PST 2006
Committed by: kou
Update of /cvs/cairo/rcairo/packages/cairo/lib/cairo/context
In directory kemper:/tmp/cvs-serv19235/packages/cairo/lib/cairo/context
Added Files:
circle.rb quad.rb rectangle.rb
Log Message:
* packages/cairo/lib/cairo.rb, packages/cairo/lib/cairo/context/,
packages/cairo/lib/cairo/context.rb: split Cairo::Context
extensions with each file under packages/cairo/lib/cairo/context/
directory.
--- NEW FILE: circle.rb ---
module Cairo
class Context
module Circle
def circle(x, y, radius)
arc(x, y, radius, 0, 2 * Math::PI)
end
end
end
end
--- NEW FILE: quad.rb ---
module Cairo
class Context
module Quad
def quad_to(x1, y1, x2, y2)
x0, y0 = current_point
cx1 = x0 + 2 * (x1 - x0) / 3.0
cy1 = y0 + 2 * (y1 - y0) / 3.0
cx2 = cx1 + (x2 - x0) / 3.0
cy2 = cy1 + (y2 - y0) / 3.0
curve_to(cx1, cy1, cx2, cy2, x2, y2)
end
def rel_quad_to(x1, y1, x2, y2)
x0, y0 = current_point
quad_to(x1 + x0, y1 + y0, x2 + x0, y2 + x0)
end
end
end
end
--- NEW FILE: rectangle.rb ---
module Cairo
class Context
module Rectangle
def rounded_rectangle(x, y, width, height, x_radius, y_radius=nil)
x1 = x
x2 = x1 + width
y1 = y
y2 = y1 + height
y_radius ||= x_radius
x_radius = [x_radius, width / 2.0].min
y_radius = [y_radius, height / 2.0].min
xr1 = x_radius
xr2 = x_radius / 2.0
yr1 = y_radius
yr2 = y_radius / 2.0
move_to(x1 + xr1, y1)
line_to(x2 - xr1, y1)
curve_to(x2 - xr2, y1, x2, y1 + yr2, x2, y1 + yr1)
line_to(x2, y2 - yr1)
curve_to(x2, y2 - yr2, x2 - xr2, y2, x2 - xr1, y2)
line_to(x1 + xr1, y2)
curve_to(x1 + xr2, y2, x1, y2 - yr2, x1, y2 - yr1)
line_to(x1, y1 + yr1)
curve_to(x1, y1 + yr2, x1 + xr2, y1, x1 + xr1, y1)
close_path
end
end
end
end
More information about the cairo-commit
mailing list