-->

如何找到ZedGraph索引位置(How to find the index position on

2019-09-20 15:59发布

有没有什么办法四处寻找曲线的指数位置,基于当前的xPosition,

比方说,我有一个曲线项目 - MyCurve,其中有2万点,当鼠标移动时,我能得到鼠标位置和那么我可以简单地使用下面的函数获取X和Y位置。

double xPos=0, yPos=0;

this.zedGraphControl1.GraphPane.ReverseTransform(MouseLoc, out xPos, out yPos);

但我想找到从曲线项目的数据点,有什么建议...?

提前致谢....:)

Answer 1:

请记住,以下只是一个近似值,它应该是准确的尤其是当你将鼠标越来越近了点,但你正在寻找的鼠标位置,你可能不会直接对你的曲线上的点。 它还假定您CurveItem Curve了点, 并且它们均匀分布。

double startPos = Curve.Points[0].X
double xStep = Curve.Points[Curve.NPts - 1].X / Curve.NPts;
int xIndex = (int)(xPos / xStep + startPos);
// Make sure it is in bounds
xIndex = xIndex < 0 ? 0 : xIndex > Curve.NPts - 1 ? Curve.NPts - 1 : xIndex;

或者您也可以使用以下功能:

CurveItem n_curve;
int index;
zedGraphControl1.GraphPane.FindNearestPoint(mousePt, out n_curve, out index);

但请记住,这将寻找最近的曲线该曲线中的最近点的指数。



Answer 2:

如果你不关心使用的位置编程,而只是想看看你的图表中显示的位置,你可以设置zedGraphControl1.IsShowPointValuestrue



文章来源: How to find the index position on ZedGraph