public void begin(double x, double y, int len)
{
double tx;
double ty;
tx = x;
ty = y;
m_trans.Transform(ref tx, ref ty);
int x1 = agg_basics.iround(tx * (double)subpixel_scale_e.subpixel_scale);
int y1 = agg_basics.iround(ty * (double)subpixel_scale_e.subpixel_scale);
tx = x + len;
ty = y;
m_trans.Transform(ref tx, ref ty);
int x2 = agg_basics.iround(tx * (double)subpixel_scale_e.subpixel_scale);
int y2 = agg_basics.iround(ty * (double)subpixel_scale_e.subpixel_scale);
m_li_x = new dda2_line_interpolator(x1, x2, (int)len);
m_li_y = new dda2_line_interpolator(y1, y2, (int)len);
}