回复 7楼profile5的帖子
我帮你写了一个方法,计算出曲线上实际的X,Y数据值。
假设坐标轴的数据点从X=0开始,然后是X=100,200.....,,取了10个点,计算出曲线上实际的数据值。
主要还是通过之前发过的坐标之间的转换方法计算的,文档在6楼可以获取。
代码参考;
- for (int i = 0; i < 10; i++)
- {
- //假设坐标轴的数据点从X=0开始,然后是X=100,200.....
- double dataX = 100*i, dataY = 0;
- int CoordX = 0, CoordY = 0;//定义鼠标坐标变量
- //将(X=100*i, Y=0)的数据点转成鼠标坐标
- chartXY.ChartGroups[0].DataCoordToCoord(dataX, dataY, ref CoordX, ref CoordY);
- //换算在X轴的这个鼠标坐标到曲线上点的Y轴距离
- int p = 0, d = 0;
- chartXY.ChartGroups[0].CoordToPointIndex(CoordX, CoordY, PlotElementEnum.Series, 0, ref p, ref d);
- //通过(CoordY - d)得到实际的曲线Y点上的鼠标坐标,并将曲线上的X,Y鼠标坐标转成曲线的数据值。
- CoordY = CoordY - d;
- chartXY.ChartGroups[0].CoordToDataCoord(CoordX, CoordY, ref dataX, ref dataY);
- Console.WriteLine("X data: " + dataX.ToString());
- Console.WriteLine("Y data: " + dataY.ToString());//dataY即为曲线上的数据Y值
- }
复制代码
请注意:因为数据值是double类型,所以不会是整数,最后得到的会有误差。 |