[cairo] Rectangle Border Widths

Chris Wilson chris at chris-wilson.co.uk
Tue Apr 10 11:46:54 PDT 2012


On Tue, 10 Apr 2012 14:29:33 -0400 (EDT), robertk54 at aol.com wrote:
> 
> 
> >> Is it possible to render rectangles whose vertical lines are different in 
> width from the horizontal lines?
> 
> >cairo_rectangle(cr, x, y, width, height);
> >cairo_save(cr);
> >cairo_scale(cr, stroke_width, stroke_height);
> >cairo_set_line_width(cr, 1);
> >cairo_stroke(cr);
> >cairo_restore(cr);
> 
> 
> Thanks Chris!
> Given this solution, what are the resulting dimensions of the rectangles?  Both the rectangle outside the line and the one within the line?  I need to fill the inner rectangle with a color .  I also need to use the inner rectangle for clipping other content which will be rendered on top of it.
> 
It should draw an outline between the two rectangles:
  (x - stroke_width/2, y - stroke_height/2)
  (x + stroke_width/2, y - stroke_height/2)
  (x + stroke_width/2, y + stroke_height/2)
  (x - stroke_width/2, y + stroke_height/2)
and
  (x + stroke_width/2, y + stroke_height/2)
  (x - stroke_width/2, y + stroke_height/2)
  (x - stroke_width/2, y - stroke_height/2)
  (x + stroke_width/2, y - stroke_height/2)

If you need to reuse only part of the stroked path, I'd recommend you
construct the outlines by hand (for the exercise ;).
-Chris

--
Chris Wilson, Intel Open Source Technology Centre


More information about the cairo mailing list