def _stroke(context, color=(0,0,0), thickness=None, dash_pattern=(), dash_offset=0): if not thickness: thickness = get_one_pixel(context) context.set_dash(dash_pattern, dash_offset) context.set_source_rgb(*color) context.set_line_width(thickness) context.stroke()
def draw_x(context, point, pixel_radius=4, *args, **kwargs): with Saved(context) as c: x, y = point one_pixel = get_one_pixel(c) offset = pixel_radius * one_pixel; c.move_to(x - offset, y + offset) #upper left c.line_to(x + offset, y - offset) #lower right c.move_to(x + offset, y + offset) #upper right c.line_to(x - offset, y - offset) #lower left _stroke(c, *args, **kwargs)