主题:紧急求助
河北理工大学计算机软件技术基础(VB)
课 程 设 计 任 务 书
学院 机械工程学院 班级 过程装备与控制工程二班 设计人 成绩
一、 题目:一元数学函数图示器(参考设计如下图)
二、目的与要求:
1.目的:
培养学生综合利用Visual Basic语言进行程序设计的能力,主要是培养学生利用VB的图片框控件进行作图技能。
2.基本要求:
欲完成此设计题目,要求必须熟练使用和掌握PictureBox控件的各种属性(如forecolor、backcolor、currentX、currentY,DrawWidth等)和方法(如Cls、Print、Line、Pset,Scale等)
①能够显示固定一元函数(例如示意图中的函数)的图形。
②可以设置常用的显示参数,包括显示范围,坐标轴、曲线、显示区底色,及刻度文字及线宽等特性,显示设置的范例可以参考右图。
③能够对图形进行缩放,并可以在显示区直接选取显示范围(窗口放大),可以对图形进行平移观察,平移的步长可以设置,当显示范围改变后,标尺刻度和网格密度应该能自动调整,以适应新的显示范围。如右图所示。
④支持鼠标点击图形上任意一点,显示出该处的x值和对应的函数值,可以用一个消息框来显示此信息(见右图)。
⑤程序界面美观,支持多个函数的叠加显示。
3.创新要求:
在基本要求达到后,进行创新设计,如进行任意一元函数(程序中直接输入函数)的图形显示,支持函数图形的打印(以打印机的分辨率进行打印,不是直接拷屏)。还可以实现一下窗口大小改变后程序自动调整图示区的范围等功能。
三、设计方法和基本原理:
1.问题描述:
程序界面见上,功能描述参见基本要求的内容。
2.问题的解决方案:
①设计程序界面。
因为用的是常用控件,界面设计没有什么难度,照样子拼好就可以了。
②Picturebox控件中背景、曲线、网格轴的颜色选择。可以直接设置控件对应的属性来完成,因为要画不同类型的线,所以在一个过程中可能需要多次设置同一属性。
③显示分辩率的实现。所谓的分辩率就是用多少条直线来逼近所画的曲线,越大画的越精确,越小画的越快,本程序建议限定在100-1000之间。
④绘制曲线的实现。
这也是本程序要实现的核心功能,主要包括的内容有:
★ Picturebox控件中坐标系的初始化。然后利用Picturebox控件的Scale方法进行设置。图形区的坐标范围要有初始值,可以在form_load事件中设置各参数的初值。
★ 绘制坐标轴及刻度网格线,并标上刻度值。
坐标刻度(又称为网格)的显示可以采用每隔一定的间距画一条线来实现,刻度的文字标注同时进行,注意调整写字的位置,让字能写在刻度的居中位置,可以用类似下面的方法,其中TextWidth和TextHeight是求出给定文字在给定对象上的文字宽度和高度,只有得到此值才能将字写在准确位置。
For i = .l To .r Step st
s = Trim(Str(i)) ‘将要写的文字转换成字串并去掉空格
P0.CurrentX = i - P0.TextWidth(s) / 2 ‘居中对齐方式
P0.CurrentY = .t ‘写在显示区的顶部
P0.Print s;
Next i
★ 函数曲线主要是利用画直线的方法进行绘制,最左侧的点算出后,用Pset方法做出标记,以后每算出一个新的函数值,用Line-(x,y)画出一小段。直到画到显示范围的右侧。程序片段类下:
(说明:.l,.r是显示区间的左边和右边的x值,.res为显示分辨率,fx求函数值)
Picture1.Pset (.l, fx(fun1, .l)) ‘绘出初始点
For i = .l To .r Step (.r - .l) / .res ‘共.res段直线构成曲线
Picture1.Line -(i, fx(fun1, i)) ‘画出一小段
Next I
⑤参数设置的实现
为了使变量公用,在模块中用Public词句声明变量及自定义类型,这样在设置窗口的form_Load事件中就可以直接取得参数值了。
Private Sub Form_Load()
With Para
txtL = .l: txtPS = .ps * 100
txtCW = .cw: txtAW = .aw
BkColor.BackColor = .bc: AxisColor.BackColor = .ac
GridColor.BackColor = .gc: Fun1Color.BackColor = .cc1
End With
End Sub
参数设置支持确定和取消,如果确定,将会重新按新的设置来显示,否则,保持原显示不变,代码类下:
Private Sub cmdSettings_Click()
DispSettings.Show vbModal
If Para.ok Then DispFun
End Sub
参数设置的文本框处理较为简单,对于颜色的处理可以采用这样的方法(VB中的颜色可以存放在Long类型的变量中),下面示例了网格颜色的设置方法,其它雷同,其中的CD1是一个公共对话框控件(Common Dialog Control)
CD1.Color = GridColor.BackColor
CD1.ShowColor
Gri`Color.BackCklor = CD1.Color
四、主要技术问题描述:
设置图牆⡆的坐标范围用Scale方法,清除用Cls,作图用Line –(x,y),写字用Print(这些都是图片对象现成的可用方法,改笔宽用DrawWidth属性,色彩用ForeColmr和BackColor,至于窗口放大(可以接受图片的MouseDown和MouseUp事件以确定用户选择的窗口范围(VB会将鼠标点击时的x,y座标报告给过程),然后重新设置显示范围和坐标系,再重新计算绘图即可,缩放和平移都是更改显示范围然后重绘即可。
为了处理参数方便,可以自定义类似于下面的自定义数据类型
Type Settings
l As Double 'left
cc1 As Long 'curve 1 color
…
End Type
这样,象放大缩小这样的操作就可以按这样的方法来处理了:
Dim Para as Settings
‘在Form_Load和其它相关过程中已经正确的设置了Para中的各参数
Private Sub cmdZoomOut_Click()
With Para
.l = .l * .zs: .r = .r * .zs: .t = .t * .zs: .b = .b * .zs
End With
DispFun ‘按新的参数显示图形
End Sub
五、课程设计时间:2010年6月14日至2010年6月23日
六、课程设计进行地点:学校机房
七、书写设计报告的要求:
设计报告中包含以下几个方面:
1.设计题目
2.设计思路
①划分功能模块
②确定各模块的算法
3.用图示的方式给出过程或函数之间的调用关系
4.列出程序清单,并加以必要的注释
5.对该设计题目有何更完善的方案
6.通过本次设计,有何收获及心得体会
八、课程设计的考核方式及评分方法
1.考核方式
课程设计结束时,学生要提交课程设计报告(A4纸打印),并将电子文档和源程序上传至课程设计服务器中:
ftp://vb@kcsj.cec.heut.edu.cn/
ftp://vb@ftp.cec.heut.edu.cn/
找到自已指导教师的文件夹后,进入班级文件夹,再找到自己的文件夹,然后将文档复制到该文件夹中即可。
2.评分方法
根据出勤率、课程设计期间纪律、课程设计运行结果、课程设计报告及答辩情况综合评分。
指导教师:
教学部主任签字:
日 期:2010年 月 日