做一个类似股票交易的的曲线图,该怎么做?

phs520 2003-12-04 10:02:38
做一个类似股票交易的的曲线图,该怎么做?vc里是否有相应的倥件,请各位大虾指点一下!!!!!!
...全文
819 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyusdn 2010-06-08
  • 打赏
  • 举报
回复
不、、、
jyc_nj 2003-12-05
  • 打赏
  • 举报
回复
只重画部分区域的确很快,但薄荷兄说的全部重画功能也是不能少的.
这里存在两个坐标系, 一个是数据所在的坐标系, 具体就是曲线上点的数值, 二是描画区所在坐标系, 就是view的dc上的坐标.两者之间的转换关系要分清,各坐标系内的变量定义要区分开,还要有专用函数完成坐标系之间的转换.
部分区域重画,就存在区域计算的问题, 一般有两种情况, 一是窗口发生resize,或滚动消息(可能还有更多),这属于数据未变(第一个坐标系内值未变),但描画环境变化的情况(第二个坐标系变化), 你可以只画新增区域内的,未变化区域用拷贝, (区域计算有些麻烦,容易头晕,我看你还是用薄荷兄说的全部重画功能吧). 另一种情况,就是数据发生更新引起重画, 变化数据可以求出最小包络矩形,转换到view坐标系后,就是你的重画区域.
你可以准备一块memory dc 作为你的背景, 再一块memory dc是你的画布, 重画区域时, 拷贝背景回来先,再在区域内MoveTo,LineTo, PolyLineTo, 甚至BezierTo.
如果你作的图很简单,如白底黑线, 那就直接在一块memory dc上画, 更新时用背景线画之间的线就可以了.
要相信现在PC机的能力, 完全可以满足你的速度要求, 本来图像显示就是给人看的,再怎么要求实时性,都不会快到什么程度,否则人也反应不过来, 数据更新的实时性才是真的.
坐标系之间的转换是要注意的, 数据更新后如何通知显示,也是重要的.
phs520 2003-12-05
  • 打赏
  • 举报
回复
太深奥了,我只听说最小矩形区域重绘(可惜不会),按时间间隔细分还没听说过 byry(pepsi)是否可以更加详细点,最好有代码
byry 2003-12-04
  • 打赏
  • 举报
回复
按照一定的时间间隔进行细分,记录每一时刻的坐标,然后绘制
phs520 2003-12-04
  • 打赏
  • 举报
回复
不希望整个窗口重画,因为现在做的是监控系统,数据变化可能比较快
phs520 2003-12-04
  • 打赏
  • 举报
回复
可是我只想区域重绘,不知道怎么实现,能不能给点提示啊,当然有代码更好啊
bluebohe 2003-12-04
  • 打赏
  • 举报
回复
没什么麻烦的,改变数据后通知相应窗口重绘就可以了,在PC上运行的东东的话,重绘足够了,不会产生闪烁
phs520 2003-12-04
  • 打赏
  • 举报
回复
当你数据有变化的时候又要将以前的所画图形檫掉或覆盖掉,这样不是很麻烦啊
我希望能有一个倥件能够将相应的数据输入后,能够自动画出来就好
bluebohe 2003-12-04
  • 打赏
  • 举报
回复
我就是做这个的,我觉得你何必用相应的控件呢,就是自己一笔一笔地往上画啊,比如分时曲线,你只要把两个相邻分钟的坐标用线连起来就可以了啊
cmsbai 2003-12-04
  • 打赏
  • 举报
回复
不知道有没有,不过你可以用插值拟和的方法通过自己的函数画出来。

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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