有没有办法根据当前的 xPosition 找到曲线的索引位置,
假设我有一个曲线项目 - MyCurve,它有 20k 点,当鼠标移动时我可以获得鼠标位置,然后只需使用以下函数即可获得 x 和 y 位置。
double xPos=0, yPos=0;
this.zedGraphControl1.GraphPane.ReverseTransform(MouseLoc, out xPos, out yPos);
但我想从曲线项中找到数据点,有什么建议吗...?
Thanks in advance....:)
请记住,以下只是一个近似值,它应该是准确的,尤其是当鼠标接近该点时,但当您查看鼠标位置时,您可能不会直接位于曲线上的点上。它还假设您的CurveItem Curve
有积分,and它们分布均匀。
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);
但请记住,这将寻找最近的曲线and该曲线内最近点的索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)