private void DrawGridLine(Graphics canvas, DistortionHelper distorter, IImageToViewportTransformer transformer, Pen penLine, PointF a, PointF b) { if (distorter != null && distorter.Initialized) { List <PointF> curve = distorter.DistortRectifiedLine(a, b); List <Point> transformed = transformer.Transform(curve); canvas.DrawCurve(penLine, transformed.ToArray()); } else { PointF p1 = transformer.Transform(a); PointF p2 = transformer.Transform(b); canvas.DrawLine(penLine, p1, p2); } }
private bool IsPointOnRectifiedLine(PointF p, PointF a, PointF b, DistortionHelper distorter, IImageToViewportTransformer transformer) { if (a == b) { return(false); } using (GraphicsPath path = new GraphicsPath()) { if (distorter != null && distorter.Initialized) { List <PointF> curve = distorter.DistortRectifiedLine(a, b); path.AddCurve(curve.ToArray()); } else { path.AddLine(a, b); } return(HitTester.HitTest(path, p, 1, false, transformer)); } }