[英]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.