c# - 如何在 ZedGraph 上找到索引位置

标签 c# graph zedgraph discretization

有没有办法根据当前的 xPosition 找到曲线的索引位置,

假设我有一个曲线项 - MyCurve,它有 20k 个点,当鼠标移动时我可以获得鼠标位置,然后我可以通过简单地使用以下函数获得 x 和 y 位置。

double xPos=0, yPos=0;

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

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

enter image description here 提前致谢....:)

最佳答案

请记住,以下只是一个近似值,它应该是准确的,尤其是当您将鼠标靠近该点时,但是当您查看鼠标位置时,您可能不会直接在曲线上的某个点上。它还假设您的 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);

但请记住,这将寻找最近的曲线该曲线内最近点的索引。

关于c# - 如何在 ZedGraph 上找到索引位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779274/

相关文章:

c# - ZedGraph 自定义图表

c# - 带有 zedgraphs 的多种形式。当下一个开始时,一个上的行继续

c# - 在 MVVM Light 中独立更改模型时更新 View 的最佳实践

algorithm - 在邻接表中表示墙

r - 组织结构图三角图

excel - 使用 SUMIF 进行图表和分组?

c# - ZedGraph 饼图上的自定义标签

c# - 什么 C#/Linq 代码在不知道它们的类型的情况下复制两个对象之间所有匹配的属性名称值?

c# - C# 中的用户可扩展访问者模式

c# - Visual Studio 2015 中的 1.0.0-beta