public static void Plot (this Context self, CairoPlotDelegate func, double lower, double upper, double step, double x, double y)
		{
			PointD point = func (lower);
			self.MoveTo (point.X + x, point.Y + y);
			for (double v = lower + step; v < upper; v += step) {
				point = func (v);
				self.LineTo (point.X + x, point.Y + y);
			}
		}
        public static void Plot(this Context self, CairoPlotDelegate func, double lower, double upper, double step, double x, double y)
        {
            PointD point = func(lower);

            self.MoveTo(point.X + x, point.Y + y);
            for (double v = lower + step; v < upper; v += step)
            {
                point = func(v);
                self.LineTo(point.X + x, point.Y + y);
            }
        }