private void graphMapInput_MouseMove(object sender, MouseEventArgs e)
{
if (kda == null)
return;
double x;
double y;
graphMapInput.GraphPane.ReverseTransform(new PointF(e.X, e.Y), out x, out y);
double[,] data = new double[1, 2];
data[0, 0] = x;
data[0, 1] = y;
double[,] result = kda.Transform(data);
int c = kda.Classify(new double[] { x, y });
graphMapFeature.GraphPane.CurveList["M1"].Clear();
graphMapFeature.GraphPane.CurveList["M2"].Clear();
graphMapFeature.GraphPane.CurveList["M3"].Clear();
if (c == 1)
graphMapFeature.GraphPane.CurveList["M1"].AddPoint(result[0, 0], result[0, 1]);
else if (c == 2)
graphMapFeature.GraphPane.CurveList["M2"].AddPoint(result[0, 0], result[0, 1]);
else
graphMapFeature.GraphPane.CurveList["M3"].AddPoint(result[0, 0], result[0, 1]);
graphMapFeature.Invalidate();
}