armfly 发表于 2016-1-6 00:21:04

TChart 波形,用鼠标移动和缩放

鼠标左键按下可拖动波形,鼠标滚轮可以放缩波形。无需代码,参数设置如下:






下面是代码实现鼠标点击为中心放大(未成功)
鼠标点击时的xy坐标可以找到,关键的问题在于:怎样重设XY轴的大小可以实现 :
    点击TChart图中的某一点,图以该点为中心放大(即放大前鼠标所在点在放大后位置不变)

double tmpX, tmpY;
double IncreasePercent = 0.5;

void __fastcall TForm1::Chart1Click(TObject *Sender)
{
if (tmpX > 0 & tmpY > 0)
{
    double OldXMin = Chart1->BottomAxis->Minimum;
    double OldXMax = Chart1->BottomAxis->Maximum;
    double NewXMin = (tmpX * IncreasePercent + OldXMin) / (1 + IncreasePercent);
    double NewXMax = (tmpX * IncreasePercent + OldXMax) / (1 + IncreasePercent);
    Chart1->BottomAxis->SetMinMax(NewXMin, NewXMax);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Chart1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
Series1->GetCursorValues(tmpX,tmpY);// <-- get values under mouse cursor
}
//---------------------------------------------------------------------------

以上是我具体实现的代码,这里只是实现X轴的ZoomIn(比例为150%),Y轴的同理,
页: [1]
查看完整版本: TChart 波形,用鼠标移动和缩放