Module: Morandi::CairoExt
- Defined in:
- lib/morandi/cairo_ext.rb
Overview
Rounded rectangle function for photo borders
Class Method Summary collapse
Class Method Details
.rounded_rectangle(cr, x1, y1, x2, y2, x_radius = 4, y_radius = nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/morandi/cairo_ext.rb', line 12 def rounded_rectangle(cr, x1, y1, x2, y2, x_radius = 4, y_radius = nil) width = x2 - x1 height = y2 - y1 y_radius ||= x_radius x_radius = [x_radius, width / 2].min y_radius = [y_radius, height / 2].min xr1 = x_radius xr2 = x_radius / 2.0 yr1 = y_radius yr2 = y_radius / 2.0 cr.new_path cr.move_to(x1 + xr1, y1) cr.line_to(x2 - xr1, y1) cr.curve_to(x2 - xr2, y1, x2, y1 + yr2, x2, y1 + yr1) cr.line_to(x2, y2 - yr1) cr.curve_to(x2, y2 - yr2, x2 - xr2, y2, x2 - xr1, y2) cr.line_to(x1 + xr1, y2) cr.curve_to(x1 + xr2, y2, x1, y2 - yr2, x1, y2 - yr1) cr.line_to(x1, y1 + yr1) cr.curve_to(x1, y1 + yr2, x1 + xr2, y1, x1 + xr1, y1) cr.close_path end |