首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB 画函数图像,该怎么解决

2013-04-20 
VB 画函数图像我想制作一个画函数图像的程序,但是遇到了以下问题,恳求各位高手为小弟指点迷津:之前在form

VB 画函数图像
我想制作一个画函数图像的程序,但是遇到了以下问题,恳求各位高手为小弟指点迷津:
之前在form上画函数图像时,用cls或抖动,所以我现在用的是picturebox

①用打点的不连续也慢,所以用Line,但画的速度也有点慢,我想,可不可以调用win的函数库直接将图像画出来??或者其他更好的办法??

②我是用画上去的,而且是画有多条函数图像,如果我指定要清除某一函数图像要怎么做?用cls肯定不行,用line重画相同的函数图像(颜色用和背景相同的)不但去除不干净,还会把其他图像破坏。(我之前找了一个让picturebox透明的代码,然后每个picturebox画一个图像,要清除某一函数就可以用cls掉对应的pictureBox,问题是太耗内存了,我设立了两个picturebox就耗掉了50%CPU。。。)因此,有没有更好的办法呢??

感激不尽
[解决办法]
1:很难想象画的慢,你用到了少个计算值来构成函数曲线? 难道你的函数计算复杂到能明显感觉到慢的地步了?还是你的方法有问题呢? 不得而知. 要知道在计算机屏幕上再多的数据也会收到显示器大小的限制,因此几百到上千的数值已经能够构建一条精确到逐像素的曲线了. 超过的部分只能是白白浪费计算时间.

2:有多个函数曲线只需要逐条画出来就可以, 要去除中间某几条曲线最简单的办法就是清空图像,然后重新画过,中间只要跳过不需要的那几条曲线就可以了. 如果觉得这样会很慢,那说明你的问题还是在前面的问题1上.
[解决办法]
图像窗口.Picture1.DrawWidth = 主窗口.线条粗细.Value
有必要放循环里吗
doevents也没必要吧
[解决办法]
关于性能问题,你可以把步长设置的大一些。

对于屏幕显示来说,X轴取样个200~500个点足够了。
[解决办法]
看看这个:
http://download.csdn.net/source/2368159
[解决办法]
对于楼主强大的中文编程献上崇高的敬意. 至少换成我的话是会看疯掉的.
而且楼主所用的循环过程貌似可优化之处非常多,性能浪费很大,相同的表达式尽量合并,只要计算一次放入变量即可.
对象的引用也不必如此彻底,一个with不但能起到很好的视觉效果,同时也能提高不少效率.
由此可见,当楼主把绘制曲线的效率提高以后,第二个问题也将不成问题了

热点排行