ピクセル座標値をグラフのデータ座標およびデータインデックスに変換する2つのメソッドは、ChartGroup オブジェクトの CoordToDataCoord メソッドと CoordToDataIndex メソッドです。これらのメソッドは、MouseMove イベントなどから座標値を取得し、プロット領域の座標または最も近いデータ点を返します。
CoordToDataCoord メソッドは4つのパラメータを取ります。最初の2つのパラメータ(以下のサンプルコードの e.X と e.Y)は、MouseMove イベントからのピクセル座標です。次の2つのパラメータは、メソッドが X 軸と Y 軸のデータ座標を整数値で返却するために使用します。以下に、MouseMove イベントにおけるこのメソッドのサンプルコードを示します。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim CoordXOutput As Double Dim CoordYOutput As Double
C1Chart1.ChartGroups.Group0.CoordToDataCoord(e.X, e.Y, CoordXOutput, CoordYOutput)
Debug.WriteLine("X
Data Coordinate: " & CoordXOutput.ToString())
Debug.WriteLine("Y Data Coordinate: " & CoordYOutput.ToString())
|
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
double CoordXOutput = 0;
double CoordYOutput = 0;
c1Chart1.ChartGroups.Group0.CoordToDataCoord(e.X, e.Y, CoordXOutput, CoordYOutput);
c1Chart1.ChartGroups.Group0. CoordToDataCoord(e.X, e.Y, ref CoordXOutput, ref CoordYOutput);
ConsoleDebug.Writeline("X Data Coordinate: " +
CoordXOutput.ToString()); ConsoleDebug.Writeline("Y Data Coordinate: " + CoordYOutput.ToString());
|
|
CoordToDataIndex メソッドは6つのパラメータをとります。最初の2つのパラメータ(以下のサンプルコードの e.X と e.Y)は、MouseMove イベントからのピクセル座標です。3番目のパラメータは、CoordinateFocusEnum 列挙体の値です。この値は、より近いデータ点とピクセル座標からの距離を決定するときに注目する軸を指定する列挙値です。たとえば、X 軸を注目すると、Y 座標の値に関係なく、最も近い X 座標を持つ最も近い点を返します。4番目と5番目のパラメータは、メソッドが適切なデータセットとデータ点のインデックスを整数値で返すために使用します。6番目のパラメータは、メソッドがデータ点とピクセル座標の距離(ピクセル単位)を整数値で返すために使用します。以下に、MouseMove イベントにおけるこのメソッドのサンプルコードを示します。
Visual Basic コードの書き方
| Visual Basic |
コードのコピー
|
|---|---|
Dim SeriesOutput As Integer Dim PointOutput As Integer Dim DistanceOutput As Integer
C1Chart1.ChartGroups.Group0._ CoordToDataIndex(e.X, e.Y,
CoordinateFocusEnum.XandYCoord,_ ref SeriesOutput, ref PointOutput, ref DistanceOutput)
Debug.WriteLine("Series Index: " & SeriesOutput.ToString())
Debug.WriteLine("Point Index: " & PointOutput.ToString())
Debug.WriteLine("Distance From Point: " & DistanceOutput.ToString())
|
|
C# コードの書き方
| C# |
コードのコピー
|
|---|---|
int SeriesOutput = 0;
int PointOutput = 0;
int DistanceOutput = 0;
c1Chart1.ChartGroups.Group0.CoordToDataIndex(e.X, e.Y, CoordinateFocusEnum.XandYCoord,
ref SeriesOutput, ref PointOutput, ref DistanceOutput);
ConsoleDebug.Writeline("Series Index: " + SeriesOutput.ToString());
ConsoleDebug.Writeline("Point
Index: " + PointOutput.ToString());
ConsoleDebug.Writeline("Distance From Point: " + DistanceOutput.ToString());
|
|