编程论坛
注册
登录
编程论坛
→
VB6论坛
求助:由PictureBox绘制的曲线,怎样实现上下移动?
shinesun
发布于 2012-12-12 15:56, 1727 次点击
由PictureBox绘制的曲线,怎样实现上下移动?知道的帮忙回复下?
6 回复
#2
风吹过b
2012-12-12 19:47
怎么样的上下移动???
整体上下移动?还是局部上下移动?
1、整体上下移动。你绘制时是怎么绘制的?如果曲线不复杂的情况下,重新计算坐标,全部重新画过就是了。
如果曲线不是很大时,可以使用 缓冲方式显示曲线,那么在显示时 重新定位就是了。
2、局部上下移动。
重绘这个部分吧。
#3
shinesun
2012-12-14 15:21
我的问题主要有3个:
第1:如下图这样,怎样在一个PictureBox控件中,能画出两个曲线。每条曲线反映一个txt文件的数据。现在是第一条曲线绘制好后,再调用Plot绘制第2条时,第一条不存在了,只有第2条在!
第2:如下图这样同时存在两条曲线的,怎样实现任意一条可以上下移动。
只有本站会员才能查看附件,请
登录
第3:本来想用在图层中,进行擦除和重绘来实现。由于刚接触Vb,还请高手指点一下!谢谢啦!
[
本帖最后由 shinesun 于 2012-12-14 15:24 编辑
]
#4
风吹过b
2012-12-14 16:19
第1:如下图这样,怎样在一个PictureBox控件中,能画出两个曲线。每条曲线反映一个txt文件的数据。现在是第一条曲线绘制好后,再调用Plot绘制第2条时,第一条不存在了,只有第2条在!
第2:如下图这样同时存在两条曲线的,怎样实现任意一条可以上下移动。
第3:本来想用在图层中,进行擦除和重绘来实现。
VB里不存在图层,但可以自己模拟图层。
1、Plot 什么函数?????不是标准的 VB 函数。
2、绘制一条曲线的流程是:绘制坐标系-》绘制曲线。一般都是封装在一个函数里。
3、需要在一个坐标系中绘制二条或以上曲线时,封装就不同了。
绘制坐标系,封装成一个函数。绘制曲线,也封装也一个函数。使用时,先调用绘制坐标系函数。再使用带参数的方法调用绘制曲线函数,一般参数包括 点坐标(数组),颜色
4、优化:绘制曲线函数,需要一个参数:目标 PictureBox 对象。在窗体上有一个与 显示区域一样大小的隐藏 PictureBox 对象,在这个对象中 绘制坐标系。
每次绘制第一条曲线时,从这个 对象中 复制坐标系。缓存坐标系图像。
5、你的第一个问题。按第3条进行操作,就应该不存在问题。
6、第二个问题。如果你按第3条操作,那么在绘制函数时,再多追加一个参数,这个参数就是指 Y 坐标的偏移量。那么当需要移动其中一条曲线时,重绘整个显示区域就可以实现了。
7、图层,本来就是 用于显示用的。当你使用第3条操作时,整个显示部分就相当于分了三层来显示。
#5
shinesun
2012-12-17 08:58
太佩服你了!看到你的回复,思路顿时清晰了很多!非常感谢!针对你的第3条,我有个疑问:我是想在相同的坐标系下绘制2条以上的曲线,封装为什么就不同了呢?绘制2条以上的曲线,不可以调用同一个坐标系函数吗?是绘制几条曲线就要把几个坐标系函数封装成一个函数吗?
[
本帖最后由 shinesun 于 2012-12-17 09:16 编辑
]
#6
风吹过b
2012-12-17 11:25
画坐标系时,一般情况下都会调用 CLS 命令,在这种情况下,就会把前面画的内容 清除掉,造成只有最后内容显示出来。
#7
shinesun
2012-12-17 15:08
回复 6楼 风吹过b
我现在是定义了一个:sub过程plot,然后根据每个txt文件的数据,调用一次plot。在plot代码中,我已经注释掉了cls,为什么还是只能显示一条曲线呢!只能保留最新绘制的曲线?帮忙分析下,谢谢!
1