vb 绘制几何曲线课程设计报告_第1页
vb 绘制几何曲线课程设计报告_第2页
vb 绘制几何曲线课程设计报告_第3页
vb 绘制几何曲线课程设计报告_第4页
vb 绘制几何曲线课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE6石家庄铁道学院课程设计石家庄铁道学院课程设计基于VisualBasic的程序设计--绘制几何曲线基于VisualBasic的程序设计--绘制几何曲线单位工程力学分院(系)专业工程力学学号20113065学生姓名甄卫刚指导教师韩立华完成日期2012年9月12日摘要随着vb的不断普及和应用,使得它在数学等学科中展现出独特的实力,尤其是在曲线的绘制方面,提供了一个非常便利的平台,所以我选择制作了一个汇集了多种曲线的小程序。通过此程序,学生不但可以欣赏各曲线的美妙,而且为了避免乏味,还特别添加了背景音乐,以及为各个窗体设计了非常精美的图片,在精神享受的同时,欣赏曲线的艺术。在此过程中遇到的困难及自我解决,和自己的心得体会,都作了阐述。通过对本系统的设计,对各对象(窗体、控件)的属性、功能有了更深刻的理解,并自学完成了曲线绘制代码的设计、背景音乐添加,背景更换等。各模块的功能如下:曲线欢迎界面:可进入各曲线的绘制,并伴有背景音乐,以及滚动条福。各曲线界面:输入常数量后,点击相应图标,完成曲线绘制。关键字:vb,曲线艺术界面,曲线绘制界面。

目录1.选题的意义 42.系统功能需求分析 42.1系统概述 42.2系统的构成 52.3各模块的功能 52.4系统的运行环境 53.系统设计 63.1总体结构设计 63.2背景设计 63.3背景音乐设计64.系统实现 74.1曲线欢迎界面的设计和实现 74.2背景音乐的设计与实现 8各种绘制曲线方法的设计和实现5.总结 155.1总结 165.2心得体会 166.致谢词7.参考文献17

1.选题的意义随着数学等学科的进一步深入,一些复杂的图像,显然用手越来越难画出,本系统就是为了完善复杂曲线的绘制而设计的。它不但能能让人们完成一些复杂的曲线,还可以自己设置相应的常量,同时还可以听到美妙的音乐,使本来乏味的曲线有了一丝趣味。从而提升学生对于复杂曲线的兴趣,以及对vb课程设计的兴趣,达到不只是曲线,而且还有vb的推广。我设计绘制几何曲线系统,通过对本系统的设计,对各对象、窗体、控件的属性、功能有了更深刻的理解,并自学完成了曲线代码的编制,坐标的绘制,各种绘制曲线的基本方法,以及对背景音乐的添加。2.系统功能需求分析2.1系统概述绘制几何曲线系统是为了促进学生对复杂曲线的了解,以及对绘制几何曲线的方法有一定的了解。它可以使学生通过点击不同的按钮,完成对不同曲线的绘制,如果不喜欢,还可以自己调节常数量和相应的半径参数,从而达到自己想要的理想效果。我还在每个页面设退出命令按钮,可方便快捷地退出本系统。通过命令按钮将每个窗体之间的跳转顺利实现。2.2系统的构成此系统有八个界面组成:1.欢迎界面、2.三角函数线、3.钻时曲线4.玫瑰曲线、5.五环曲线、6.笛卡尔心形线7.类心脏线、8.笛卡尔叶形线2.3各模块的功能在欢迎界面,学生可以点击不同的按钮,进行与子界面之间的切换,各子界面内可以点击相应曲线的名称,完成对不同曲线的绘制。并且可以自己设置某些常量和半径的值,从而达到更好的效果,点击返回按钮可以返回主界面,并且主界面的背景发生变化,相应的按钮发生颜色的变化。2.4系统的运行环境绘制几何曲线的程序,可以用来帮助学生对曲线有更形象的了解,从而增加学生的学习兴趣,也可以用于vb中作为例题从而完成学生学习曲线绘制的各种基本方法,对此课程有一个更好地掌握,另外此程序还考虑到学生对不同曲线大小的需求,调节不同的参数,达到自己想要的效果。3.系统设计3.1总体结构设计主界面主界面五环曲线玫瑰曲线钻时曲线三角函数线心形线叶形线心脏线五环曲线玫瑰曲线钻时曲线三角函数线心形线叶形线心脏线3.2背景设计为了防止背景图片在不同的盘中不能正常显示,采用了App.Path&的相对路径可以避免了此问题,达到了随时安装随时应用的目的。3.3背景音乐的设计背景音乐的添加可以是网络音乐,但打开系统时,背景音乐可能因为网速的原因卡或者不能播放为了解决这个问题直接将此歌曲加载到系统里,并且也采用了相对路径,达到了随开随放的效果。4.系统实现4.1曲线欢迎界面的实现首先,在主页窗体上添加图片是在属性窗口中通过“picture”属性中设置的窗体上滚动的字条“甄卫刚设计欢迎欣赏”通过如下代码设置实现:PrivateSubTimer2_Timer()'timer2控件的timer事件来实现标签移动IfLabel2.Left+Label2.Width>0ThenLabel2.Left=Label2.Left-20ElseLabel2.Left=Picture1.WidthEndIfEndSub美丽的曲线的颜色变化同样是通过timer来实现的。4.2背景音乐的设计与实现PrivateSubForm_Load()DimTempData()AsByteTempDataPath=App.Path&"清明雨上.mp3"‘相对路径TempData=LoadResData(101,"CUSTOM")OpenTempDataPathForBinaryAccessWriteAs#1Put#1,,TempDataClose#1WindowsMediaPlayer1.URL=TempDataPath‘达到随开随放三角函数线的绘制PrivateSubCommand1_Click()Dimx!,y!,i!ClsDrawWidth=1.5Scale(-14,14)-(14,-14)Line(-13,0)-(13,0)Line(0,11)-(0,-13)CurrentX=0:CurrentY=0:Print"0"CurrentX=13:CurrentY=0:Print"x"CurrentX=0:CurrentY=11:Print"y"‘绘制坐标Fori=-10To10Step0.0002x=i*2*3.14/10y=10*Sin(x)‘定x,y的值PSet(i,y),vbBlueNextiEndSub效果如下:五环曲线的绘制代码:PrivateSubCommand1_Click()Dimi%,j%,r%,x%DrawWidth=3r=500x=1000:y=1000Forj=3To2Step-1Fori=1TojCircle(x,y),r,QBColor(Rnd*15)‘五环的颜色随机变换x=x+2*r+100Nextix=1000+r+50y=y+r+150‘确定各圆的圆心NextjEndSub效果如下玫瑰曲线的代码如下:PrivateSubCommand1_Click()Dima#,x#,y#,r%Form5.Scale(-4,4)-(4,-4)r=4Fora=0To360Step0.01x=r*Cos(6*a)*Cos(a)y=r*Cos(6*a)*Sin(a)Form5.PSet(x,y),RGB(252,33,94)NextDimx1#,y1#,r1%Form5.Scale(-4,4)-(4,-4)r1=3Fora=0To360Step0.005‘三个的速率不同达到动态效果x1=r1*Cos(6*a)*Cos(a)y1=r1*Cos(6*a)*Sin(a)Form5.PSet(x1,y1),vbGreenNextDimx2#,y2#,r2%Form5.Scale(-4,4)-(4,-4)r2=2‘半径不同取值达到玫瑰效果Fora=0To360Step0.001x2=r2*Cos(6*a)*Cos(a)y2=r2*Cos(6*a)*Sin(a)Form5.PSet(x2,y2),RGB(252,33,94)NextEndSub效果如下:钻时曲线的代码如下:PrivateSubCommand1_Click()Constpi=3.14159265Dimi%,j%,x1!,y1!,x2!,y2!Dimsngangle!,sngradius!,intnodes%Me.Scale(-15,-15)-(15,15)Me.ClsIfText2.Text=""ThenText2.Text=10IfText1.Text=""ThenText1.Text=15sngradius=Val(Text2.Text)intnodes=Val(Text1.Text)sngangle=2*pi/intnodesFori=1Tointnodesx1=sngradius*Cos(i*sngangle)y1=sngradius*Sin(i*sngangle)‘定分点的坐标Forj=1TointnodesIfi<>jThenx2=sngradius*Cos(j*sngangle)y2=sngradius*Sin(j*sngangle)‘第二次定分点的坐标Me.Line(x1,y1)-(x2,y2),vbBlue‘用line方法完成不同点的连线EndIfNextNextEndSub效果如下:类心脏线类似。笛卡儿叶形线、心形线类似,以叶形线为例,代码如下:PrivateSubCommand1_Click()Dimx!,y!,i!,a!ClsDrawWidth=1.5‘设置线的宽度Scale(-14,14)-(14,-14)Line(-13,0)-(13,0)Line(0,11)-(0,-13)CurrentX=0:CurrentY=0:Print"0"CurrentX=13:CurrentY=0:Print"x"CurrentX=0:CurrentY=11:Print"y"IfText1.Text=""ThenMsgBox"a无值",vbExclamation,"输入a的值"‘必须输入a值Text1.SetFocusElsea=Text1.TextFori=0To6.8Step0.0001x=a*3*Sin(i)*Cos(i)^2/(Sin(i)^3+Cos(i)^3)y=a*3*Sin(i)*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论