簡體   English   中英

在C ++中使用Tchart繪制垂直線

[英]Using Tchart in c++ to draw a vertical line

我得到了一些需要繪制為垂直線的值。 該行應從圖表字段的開始到結束。

我在Embarcadero中使用VCLTee.Chart.hpp。 據我所知,Tchart實際上在Delphi中使用得更多。

然而:

我使用此功能:

DlgMainWindow->ChartTemperatureCurve->Canvas->DoVertLine(XValue,YValue,ZValue);

我找不到描述。 如我所見,DoVertLine與圖表的Pixel一起使用。 但是,如果我的YValue = 10,並且在整個距離上應始終與x平行。

您應該使用軸CalcPosValue函數將YValue從軸值轉換為像素。

如果要以恆定的YValue畫一條線,那將是一條水平線 ,而不是一條垂直線。

在下面的示例中,我在YValue = 10處繪制一條水平線。
注意,應在OnAfterDraw事件或類似事件上OnAfterDraw圖形函數,以確保自定義圖形在每次重新繪制后都已完成。

要在RAD Studio上使用OnAfterDraw事件,請在設計時選擇圖表,導航到“ 對象”檢查器中的“ 事件”選項卡,然后雙擊OnAfterDraw旁邊的白色單元格。
此操作應使用新的空OnAfterDraw函數將光標移至代碼視圖。
然后,您可以在其中添加要執行的操作。 也就是說,在ChartRect繪制一條水平線,其YValue = 10:

void __fastcall TForm1::Chart1AfterDraw(TObject *Sender)
{
  Chart1->Canvas->Pen->Color = clRed;

  int X0Pos = Chart1->ChartRect.Left;
  int X1Pos = X0Pos + Chart1->ChartRect.Width();
  double YVal = 10;
  int YPos = Chart1->Axes->Left->CalcPosValue(YVal);

  Chart1->Canvas->DoHorizLine(X0Pos, X1Pos, YPos);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM