您现在所在的是:

电脑编程

回帖:1个,阅读:1853 [上一页] [1] [下一页]
29673
思南 管理员
文章数:14047
年度积分:62
历史总积分:29673
注册时间:2001/3/12
发站内信
发表于:2003/6/17 15:22:00
#0楼
如何绘制快速连续滚动的曲线

<转自问专家>
编号:QA003484
建立日期: 2000年11月1日 最后修改日期:2000年11月7日
所属类别:

Visual Basic - 图形、图象

田雨:
   操作系统:WIN98
   编程工具:VB5.0
   问题:问题题目:如何绘制快速(毫秒级)连续滚动的曲线?本人目前有一个问题,本人在PICTUREBOX控件中绘制曲线,需要一个曲线连续滚动的效果,即曲线从屏幕绘制最左侧到最右侧时,如果接着绘制的话,则旧曲线不断向左平移,同时新曲线逐点在屏幕最右侧不断绘制,形成了连续滚动的效果(即一个监测曲线),本人从网上下载了一个高速计时源码,每画一点的时间是10毫秒,以前本人也编出一个程序,原理是
   一、 先在PICTUREBOX控件上画出坐标
   二、 从屏幕绘制最左侧到最右侧时画440点(用LINE方法),同时每一点的值存放到数组中,绘制每点间隔9秒。
   三、 当第一次曲线画到最右侧时,先调用绘制坐标的程序,即在PICTUREBOX控件上重绘坐标,同时将数组中的第一个数不要,将后439个点存入数组中(使用FOR—NEXT循环),然后在这个坐标上画这439个点,等九秒时间到后,第440个数则写入数组,同时绘制曲线,下一个点到来时,再重复第三步。由于人视觉上的原因,就会形成以上连续滚动的效果。
   本来这种方法比较烦琐,效率也低,但由于系统要求不严格,到也使用良好,但现在采用这种方法则不可,因为间隔时间仅有10毫秒,在10毫秒一到时,根本连步奏三中FOR—NEXT循环写数都完成不了,结果就只有死机,我因此考虑得使用使PICTUREBOX中部分图像平移同时最后一点在补充过来的方法看是否能搞定。但本人能力有限,至今没有找到解决方法,因此特此慕名向贵网站个路高手讨教,尽管没有理由向诸位提出时间上尽快解决的要求,但还是真诚希望诸位能尽快想个主意,出个办法,本人在此不胜感激。不管问题解决与否,再次向诸位表示衷心感谢。只要能实现上述功能,无论使用什么控件,什么方法都可。
   水平: 中级

回答:

   可以采用“位图自身拷贝”的方法,具体是:你在位图的前十分之一(无所谓)的区域绘图,然后利用bitblt函数进行自身拷贝(将源pDC和目的pDC设为一样即可),将前(左)十分之一的图形拷贝到相邻的十分之一区域,然后重复前一过程,这样就可以形成动画。
图
如您对论坛有好的建议或创想,请加大版主微信号:gkong2015
大版主推荐【工控百家谈】微信公众号,业界大拿原创内容分享
1477
adautomation
文章数:244
年度积分:50
历史总积分:1477
注册时间:2003/5/19
发站内信
发表于:2003/6/18 9:00:00
#1楼
好注意, 我也不会的. 不过labview好像绘图很快的, 是不是这个原理.
最恶心的就是日本

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003