请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6025|回复: 0
收起左侧

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

[复制链接]

747

主题

1048

回帖

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2016-1-6 00:21:04 | 显示全部楼层 |阅读模式
鼠标左键按下可拖动波形,鼠标滚轮可以放缩波形。无需代码,参数设置如下:
TChart1实现鼠标移动和缩放.png





下面是代码实现鼠标点击为中心放大(未成功)
鼠标点击时的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轴的同理,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-18 20:02 , Processed in 0.156419 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表