4

私はこのように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]);
4

2 に答える 2

2

GraphPane.GeneralTransform(...)メソッドを使用できる曲線の特定のポイントを知る

したがって、次のコードを使用します。

var myPoint = myCurve[3];
var screenPoint = myPane.GeneralTransform(myPoint.X, myPoint.Y, CoordType.AxisXYScale);

画面上の特定のポイント(ピクセル単位)に変換された座標が得られます。

次に、カーソルをそのポイントに移動する高レベルのメソッド (おそらく Windows フォームで...) を見つける必要があります。

于 2011-03-21T20:16:00.730 に答える
1

以下は、グラフのオブジェクト コレクションの一部であるクロス カーソルを作成する簡単で効率的な例です。これにより、ズームや印刷を操作できます。「GraphObjList」コレクションに 2 つの「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 を使用すると、グラフ上に青い「十字」カーソルが表示されます。

于 2015-02-05T16:28:17.480 に答える