我在Zedgraph中绘制了一条如下曲线:
GraphPane myPane = zgc.GraphPane;
PointPairList list1 = new PointPairList();
for(int i =0; i<10; i++)
list1.Add(i,i);
LineItem myCurve = myPane.AddCurve("Title",
list1, Color.Red, SymbolType.None);
zgc.AxisChange();
zgc.Refresh();
如何在x
y
上的某个myCurve
,SetCursor(myCurve, list1[3]);
点显示光标(或任何其他图形对象):
{{1}}
答案 0 :(得分:1)
了解曲线的特定点,您可以使用GraphPane.GeneralTransform(...)
方法
所以使用以下代码:
var myPoint = myCurve[3];
var screenPoint = myPane.GeneralTransform(myPoint.X, myPoint.Y, CoordType.AxisXYScale);
会给你转换到屏幕上特定点的坐标(以像素为单位)。
然后你需要找到一些更高级别的方法(可能在windows窗体中......),它会将你的光标移动到那一点。
答案 1 :(得分:1)
这是一个简单而高效的示例,用于创建十字光标,它是图形对象集合的一部分,因此您可以在其上进行缩放和打印。它在“GraphObjList”集合中添加了两个“LineObj”。 代码:将光标放在第一条曲线的第10个点
Dim myPane As GraphPane = zg1.GraphPane
Dim myPoint As PointPair = myPane.CurveList.Item(0).Points(10)
Dim CurseurV1 As New LineObj(Color.Blue, myPoint.X,myPane.YAxis.Scale.Min, myPoint.X, myPane.YAxis.Scale.Max)
CurseurV1.Line.Width = 0.5
myPane.GraphObjList.Add(CurseurV1)
Dim CurseurH1 As New LineObj(Color.Blue, myPane.XAxis.Scale.Min,myPoint.Y, myPane.XAxis.Scale.Max, myPoint.Y)
CurseurH1.Line.Width = 1
myPane.GraphObjList.Add(CurseurH1)
完成了:使用ZedGraph.dll版本5.1.2.878在你的graphe上有一个蓝色的“十字”光标。