十万火急!!高手帮忙!!关于CHART控件

知足常乐 2001-11-07 11:25:54
我在CHART控件上动态画了几条曲线,当我用鼠标点击CHART控件时要得到曲线上对应的点值(X,Y),
其中 X 值(横坐标)可以这样得到:
Series1.GetCursorValues(tmpX,tmpY);
X:=Series1.GetHorizAxis.LabelValue(tmpX);

而 Y 值不知该怎样得到?
注意: X 值是鼠标当前位置对应CHART上的横坐标,而 Y 值不是鼠标当前位置对应CHART上的纵坐标。Y 值是曲线上的一个点的纵坐标值,这个点的横坐标是 X 。

我有一个想法:能否将已经得到的 X 值通过什么函数或方法求出它(这个点)的ValueIndex 值,然后可以用Ylabel[valueindex]就可以了。关键是有这样的函数或方法吗?

请各位高手指点,不甚感谢!





...全文
223 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
asgq 2001-11-09
  • 打赏
  • 举报
回复
V_Lucky:
你的QQ?
asgq 2001-11-09
  • 打赏
  • 举报
回复
45970397
知足常乐 2001-11-09
  • 打赏
  • 举报
回复
asgq(强子) 你好!
能否告诉我你的 QQ号码 ?

问题我可以在QQ 上与你请教。
这儿我今天结帖。
知足常乐 2001-11-09
  • 打赏
  • 举报
回复
asgq(强子) 你好!
1、关于曲线平滑问题:若与前面的点 平均处理 后,我在以后动态显示点的值时数据不是变了 吗?
我希望我描的点的值不变,点与点之间原来是直线连接,能否自动用圆滑曲线自动连接?

2、能否帮我写一下 二分方 的算法?
asgq 2001-11-09
  • 打赏
  • 举报
回复
我定位曲线点的index用的是二分查找的方法,速度很快
asgq 2001-11-09
  • 打赏
  • 举报
回复
速度没有问题,要想曲线平滑
要做一下处理,曲线点赋值的时候与前面几个点平均处理一下就好看多了
知足常乐 2001-11-09
  • 打赏
  • 举报
回复
既然高手们也想不出高招的话,我想另外补充一个简单的问题:
CHART 上的曲线怎样圆整,让曲线平滑???

解决了也给20分!!!
blackfiles 2001-11-08
  • 打赏
  • 举报
回复
学习
知足常乐 2001-11-08
  • 打赏
  • 举报
回复
asgq(强子) 你的建议很好,非常感谢!!!

这样做应该可以解决

但是我再鼠标拖动时实时显示的,速度不知怎样?
拖动时会不会不连续?

不过,先谢谢你!!
知足常乐 2001-11-07
  • 打赏
  • 举报
回复
infowain(infowain) :你好
我的曲线的点的值是从数据库中查出来的,再通过程序画上去的,画曲线的代码如下:
我再CHART控件中动态画了几条曲线:
var Series1:TLineSeries
begin
//for i:=0 to RouteCounts-1 do
for i:=0 to 0 do //假如我只画一条
begin
Series1:=TLineSeries.Create(self);
Series1.ParentChart:=Chart1;
Series1.Title:='车道'+inttostr(i+1);
Series1.SeriesColor := clRed;
Series1.XValues.DateTime := True ;

StoredProc1.First;
while not StoredProc1.eof do
begin
Chart1.Series[i].AddXY(StoredProc1.Fieldbyname('rqsj').value,
StoredProc1.Fields[i+2].value,
'',
Chart1.Series[i].SeriesColor);
StoredProc1.next;
end;
end;
end;
infowain 2001-11-07
  • 打赏
  • 举报
回复
我认为你的想法有问题
你的曲线一定是通过某个算法y=f(x)画出来的
你得到了x,用你的算法计算y就好了,
不用通过TChart了
asgq 2001-11-07
  • 打赏
  • 举报
回复
我以前做过这个,没有找到现成的函数
我是这样做的
你知道的参数:曲线起始坐标,曲线终止坐标,共N个点,第n点的X值(已经转变为时间),
这样就求出第n点的index了,
知足常乐 2001-11-07
  • 打赏
  • 举报
回复
高手呢?快点帮忙啊!!

我再补充一点:是不是分数不够?
谁能告诉我怎样把“专家分”、“可用分”、“参与分”换成在提问时可以用的分数,我把我的所有分都加上去?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧