私は自分のプロジェクトで ZedGraph を使用しています。しかし、まだわからないことが 1 つあります。図のように、LineItem の説明をチャートに直接プロットする可能性を探しています。
http://www.imagesup.net/?di=113548312290
TextObj を使用しようとしましたが、角度を正しく計算できず、線の傾きに対応していません。誰が私の何が悪いのか教えてもらえますか? PS: X 軸と Y 軸の範囲が異なるか、画面上のこれらの軸の長さが異なることが原因でしょうか?
PointPair ptA = new PointPair(0, 100);
PointPair ptB = new PointPair(100, 0);
PointPairList ppl = new PointPairList();
ppl.Add(ptA);
ppl.Add(ptB);
LineItem myCurve = zedGraphControl1.GraphPane.AddCurve(string.Empty, ppl, Color.Red, SymbolType.Circle);
// centre of line
PointPair pt = new PointPair(0.5 * (ptA.X + ptB.X), 0.5 * (ptA.Y + ptB.Y));
TextObj text = new TextObj("desc", pt.X, pt.Y, CoordType.AxisXYScale, AlignH.Center, AlignV.Center);
text.ZOrder = ZOrder.A_InFront;
double dX = ptB.X - ptA.X;
double dY = ptB.Y - ptA.Y;
float alfa = (float)(Math.Atan2(dY, dX) * (180.0 / Math.PI));
text.FontSpec.Angle = alfa;
zedGraphControl1.GraphPane.GraphObjList.Add(text);
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();
zedGraphControl1.Refresh();