学年数字物理论文.docx

上传人:b****3 文档编号:10550309 上传时间:2023-05-26 格式:DOCX 页数:33 大小:825.29KB
下载 相关 举报
学年数字物理论文.docx_第1页
第1页 / 共33页
学年数字物理论文.docx_第2页
第2页 / 共33页
学年数字物理论文.docx_第3页
第3页 / 共33页
学年数字物理论文.docx_第4页
第4页 / 共33页
学年数字物理论文.docx_第5页
第5页 / 共33页
学年数字物理论文.docx_第6页
第6页 / 共33页
学年数字物理论文.docx_第7页
第7页 / 共33页
学年数字物理论文.docx_第8页
第8页 / 共33页
学年数字物理论文.docx_第9页
第9页 / 共33页
学年数字物理论文.docx_第10页
第10页 / 共33页
学年数字物理论文.docx_第11页
第11页 / 共33页
学年数字物理论文.docx_第12页
第12页 / 共33页
学年数字物理论文.docx_第13页
第13页 / 共33页
学年数字物理论文.docx_第14页
第14页 / 共33页
学年数字物理论文.docx_第15页
第15页 / 共33页
学年数字物理论文.docx_第16页
第16页 / 共33页
学年数字物理论文.docx_第17页
第17页 / 共33页
学年数字物理论文.docx_第18页
第18页 / 共33页
学年数字物理论文.docx_第19页
第19页 / 共33页
学年数字物理论文.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学年数字物理论文.docx

《学年数字物理论文.docx》由会员分享,可在线阅读,更多相关《学年数字物理论文.docx(33页珍藏版)》请在冰点文库上搜索。

学年数字物理论文.docx

学年数字物理论文

河海大学2009学年数字物理论文

 

通过VB模拟电、磁场的场强分布

 

班级:

测绘

(1)班

学号:

0804040121

姓名:

曹奇

指导老师:

张爱梅

 

二零零九年十二月

中国南京

 

通过VB模拟电、磁场的场强分布

曹奇

(南京河海大学土木工程学院0804040124)

摘要:

VisualBasic是一种面向对象的程序设计语言,同时也是一种实用的图形界面的软件开发环境,具有很强的图形处理功能。

本程序将利用VisualBasic的这一功能模拟电、磁场的场强分布,主要以通电螺旋形线圈、带电球体、通有电流的圆柱体和通有变化磁场的螺线管四种示例来模拟绘制中心磁感应强度、电场分布图形、磁场和感生电场图形分布,并计算相应结果。

关键词:

VB电、磁场的场强分布模拟绘图

引言:

由于电、磁场内容过于复杂抽象,无法直观的感觉和体会,往往给人一种无法着力的感觉,而利用图像则可以很好的解决这一问题,传统绘图多为人工,费时且不准确。

随着计算机的发展,计算机绘图技术也逐渐成熟,本程序即采用VisualBasic强大的绘图及图形处理功能模拟电、磁场的场强分布,快速准确的绘制出电场、磁场分布图形,并且通过计算功能编写算法计算出图形特殊点的场强,简单而又便捷。

程序思路:

本程序通过VB编辑较为人性化的窗口,不仅拥有windows一贯的的菜单界面,更添加了弹出式菜单,以方便操作。

通过使用者的选择不同的操作程序,从而进入不同的操作界面。

此程序主要分为四个程序界面:

(1)通电螺旋形线圈求中心磁感应强度;

(2)模拟带点球体的北外电场分布;(3)模拟通有电流圆柱体求内外磁场分布;(4)模拟通有变化磁场产生感生电场的分布。

在各个程序界面中均设有相应的文本框、按钮等控件来收集使用者对于绘制图形的要求。

然后通过vb绘点、绘线、绘曲线程序完成,并且有相应的算法语句来计算出图形中一些特殊点的物理量,运用以直代曲,以点代线方法,以使图形更加量化,内容更加具体。

主要过程、模块及其功能:

(1)窗体的相互切换:

PrivateSubbutton2_Click()

Form1.Hide

Form3.Show

EndSub

(2)窗体label控件的文本显示

PrivateSubForm_Load()

Label1.Caption="测绘一班"&Chr(13)&"0804040124"&Chr(13)&"曹奇"(本语句在VB程序中为行语句)

Label2.Caption="本程序分为四个子程序,均关于模拟电、磁场:

"&Chr(13)&""&Chr(13)&"

(1)关于通电螺旋形线圈求中心磁感应强度"&Chr(13)&""&Chr(13)&"

(2)模拟带点球体的内外电场分布"&Chr(13)&""&Chr(13)&"(3)模拟通有电流圆柱体求内外磁场分布"&Chr(13)&""&Chr(13)&"(4)模拟螺线管中变化磁场产生感生电场分布。

"(本语句在VB程序中为行语句)

EndSub

(3)输入绘图信息并计算

PrivateSubCommand1_Click()

IfNotIsNumeric(Text1.Text)OrNotIsNumeric(Text2.Text)OrNotIsNumeric(Text3.Text)OrNotIsNumeric(Text4.Text)Then(本语句在VB程序中为行语句,主要是用户判断是否输入数值)

MsgBox"请输入数值",vbInformation

EndIf

OnErrorResumeNext添加此句更人性化,避免不必要的麻烦

R1=Text1.Text

R2=Text2.Text

N=Text3.Text

I=Text4.Text

B=4*3.1415926*10^-7*N*I*0.5*Log(R2/R1)

Text5.Text=B

(本语句主要用来收录使用者对“通电螺旋形线圈求中心磁感应强度”绘制图形的相关指令,并计算出圆心处磁感应强度B)

(4)绘制坐标系(x轴和y轴)

DimXAsSingle,YAsSingle,jAsSingle

Picture1.Cls

Picture1.Scale(-80,80)-(80,-80)

Picture1.Line(0,80)-(0,-80)

Picture1.Line(-1,75)-(0,80)

Picture1.Line(0,80)-(1,75)

Picture1.Line(80,0)-(-80,0)

Picture1.Line(75,1)-(80,0)

Picture1.Line(80,0)-(75,-1)

Picture1.CurrentX=1

Picture1.CurrentY=0

Picture1.Print"O"

Picture1.CurrentX=77

Picture1.CurrentY=-1

Picture1.Print"X"

Picture1.CurrentX=1

Picture1.CurrentY=80

Picture1.Print"Y"

(5)绘制螺旋形线圈

Forj=R1To80Step0.0001

Y=j*Sin(j)

X=j*Cos(j)

Picture1.PSet(X,Y),RGB(255,255,255)

Next

(6)显示鼠标在坐标系中坐标

PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Me.Caption=X&","&Y

EndSub

(7)绘制拐点虚线及场强曲线

Picture2.DrawStyle=2

Picture2.CurrentX=-1

Picture2.CurrentY=Q/R^2*X

Picture2.CurrentX=R

Picture2.CurrentY=Q/R^2*X

Picture2.Print"拐点P"

Picture2.CurrentX=R

Picture2.CurrentY=1

Picture2.Print"R"

Picture2.drawStyle=0

Picture2.CurrentX=-2

Picture2.CurrentY=Q/R^2*X

Picture2.Print"qr/(4πεR^3)"

ForI=RTo45Step0.001

E=Q/I^2*X

Picture2.PSet(I,E),RGB(255,255,255)

Next

(8)绘制载流圆柱图

PrivateSubCommand1_Click()

Picture2.Cls

Picture1.Scale(-50,50)-(50,-50)

Picture1.Line(-30,30)-(-30,-30),RGB(255,0,0)

Picture1.Line(30,30)-(30,-30),RGB(255,0,0)

Picture1.Circle(0,30),30,RGB(255,0,0),,,0.5

Picture1.Circle(0,-30),30,RGB(255,0,0),,,0.5

Picture1.DrawStyle=3

Picture1.Line(0,50)-(0,-50)

Picture1.Circle(0,15),40,RGB(255,0,0),,,0.5

Picture1.Line(0,15)-(40,15)

Picture1.Circle(0,-15),15,RGB(255,0,0),,,0.5

Picture1.CurrentX=40

Picture1.CurrentY=15

Picture1.Print"P"

Picture1.Line(0,-15)-(15,-15)

Picture1.CurrentX=7.5

Picture1.CurrentY=-15

Picture1.Print"r"

Picture1.DrawStyle=0

Picture1.Line(15,-15)-(12,-14),RGB(255,0,30)

Picture1.Line(15,-15)-(12,-15),RGB(255,0,30)

Picture1.Line(40,15)-(37,15.5),RGB(255,0,0)

Picture1.Line(40,15)-(37,14.5),RGB(255,0,0)

Picture1.Line(-20,30)-(-20,50),RGB(255,0,0)

Picture1.Line(-20,50)-(-19,48),RGB(255,0,0)

Picture1.Line(-20,50)-(-21,48),RGB(255,0,0)

Picture1.Line(20,30)-(20,48),RGB(255,0,0)

Picture1.Line(20,50)-(19,48),RGB(255,0,0)

Picture1.Line(20,50)-(21,48),RGB(255,0,0)

Picture1.Line(-10,30)-(-10,48),RGB(255,0,0)

Picture1.Line(-10,50)-(-11,48),RGB(255,0,0)

Picture1.Line(-10,50)-(-9,48),RGB(255,0,0)

Picture1.Line(10,30)-(10,48),RGB(255,0,0)

Picture1.Line(10,50)-(11,48),RGB(255,0,0)

Picture1.Line(10,50)-(9,48),RGB(255,0,0)

Picture2.Scale(-4,80)-(80,-4)

Picture2.Line(0,0)-(80,0)

Picture2.Line(0,0)-(0,80)

Picture2.Line(80,0)-(77,1)

Picture2.Line(80,0)-(77,-1)

Picture2.Line(0,80)-(1,77)

Picture2.Line(0,80)-(-1,77)

Picture2.CurrentX=2

Picture2.CurrentY=79

Picture2.Print"B"

Picture2.CurrentX=76

Picture2.CurrentY=5

Picture2.Print"r"

Picture2.CurrentX=0

Picture2.CurrentY=1

Picture2.Print"O"

(9)绘制磁场强度分布曲线绘制拐点曲线

Picture2.Line(0,0)-(R,I*R/R^2),RGB(255,255,255)

Forj=RTo80Step0.001

B=I/j

Picture2.PSet(j,B),RGB(255,255,255)

Next

Picture2.DrawStyle=2

Picture2.Line(R,0)-(R,I*R/R^2),RGB(255,255,255)

Picture2.Line(0,I*R/R^2)-(R,I*R/R^2),RGB(255,255,255)

Picture2.DrawStyle=0

(10)出现闪烁或打印字体

OptionExplicit

DimmAsLong,nAsLong,sAsString

PrivateSubCommand1_Click()

Timer1.Enabled=NotTimer1.Enabled

EndSub

PrivateSubForm_Load()

n=Len(Me.Label1.Caption)

m=0

s=Label1.Caption

EndSub

PrivateSubTimer1_Timer()

m=m+1

Ifm>nThen

m=1

Me.Label1.ForeColor=QBColor(Int(15*Rnd))

EndIf

Label1.Caption=Left(s,m)

EndSub

(11)出现弹出式菜单

PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=2Then

PopupMenuhelp

EndIf

EndSub

程序主代码:

窗体1(Form1)代码:

Form1

PrivateSubbutton1_Click()‘菜单说明按钮操作

Form1.Hide

Form2.Show

EndSub

PrivateSubbutton2_Click()

Form1.Hide

Form3.Show

EndSub

PrivateSubbutton3_Click()

Form1.Hide

Form4.Show

EndSub

PrivateSubCommand1_Click()

Form1.Hide

Form2.Show

EndSub

PrivateSubCommand2_Click()

Form1.Hide

Form3.Show

EndSub

PrivateSubCommand3_Click()

Form1.Hide

Form4.Show

EndSub

PrivateSubExit_Click()

End

EndSub

PrivateSubForm_Load()

Label1.Caption="土木三班"&Chr(13)&"0804040121"&Chr(13)&"樊宇"

Label2.Caption="本程序分为三个子程序,均关于模拟电、磁场:

"&Chr(13)&""&Chr(13)&"

(1)关于通电螺旋形线圈求中心磁感应强度"&Chr(13)&""&Chr(13)&"

(2)模拟带点球体的内外电场分布"&Chr(13)&""&Chr(13)&"(3)模拟通有电流圆柱体求内外磁场分布"

EndSub

窗体2(Form2)代码:

OptionExplicit

DimR1AsSingle,R2AsSingle,NAsInteger,BAsSingle,IAsSingle

PrivateSubCommand1_Click()

IfNotIsNumeric(Text1.Text)OrNotIsNumeric(Text2.Text)OrNotIsNumeric(Text3.Text)OrNotIsNumeric(Text4.Text)Then

MsgBox"请输入数值",vbInformation‘判断指定文本框中是否输入数值

EndIf

OnErrorResumeNext

R1=Text1.Text

R2=Text2.Text

N=Text3.Text

I=Text4.Text

B=4*3.1415926*10^-7*N*I*0.5*Log(R2/R1)

Text5.Text=B

DimXAsSingle,YAsSingle,jAsSingle

Picture1.Cls

Picture1.Scale(-80,80)-(80,-80)

Picture1.Line(0,80)-(0,-80)绘制坐标系(x轴和y轴)

Picture1.Line(-1,75)-(0,80)

Picture1.Line(0,80)-(1,75)

Picture1.Line(80,0)-(-80,0)

Picture1.Line(75,1)-(80,0)

Picture1.Line(80,0)-(75,-1)

Picture1.CurrentX=1

Picture1.CurrentY=0

Picture1.Print"O"

Picture1.CurrentX=77

Picture1.CurrentY=-1

Picture1.Print"X"

Picture1.CurrentX=1

Picture1.CurrentY=80

Picture1.Print"Y"

Forj=R1To80Step0.0001绘制螺旋形线圈

Y=j*Sin(j)

X=j*Cos(j)

Picture1.PSet(X,Y),RGB(255,255,255)

Next

EndSub

PrivateSubCommand2_Click()

Form2.Hide

Form1.Show

EndSub

PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Me.Caption=X&","&Y显示鼠标在坐标系统中坐标

EndSub

窗体3(Form3)代码:

DimQAsSingle,RAsSingle

ConstX=1/(4*3.1415926*8.854187*10^-12)

PrivateSubCommand1_Click()

Picture1.Scale(-50,50)-(50,-50)绘制带点球体

Picture1.Circle(0,0),20,RGB(234,3,3)

Picture1.Circle(0,0),20,RGB(234,3,3),,,0.5

Picture2.Cls

Picture2.Scale(-2,50)-(50,-2)

DimIAsSingle,EAsSingle

IfNotIsNumeric(Text1.Text)OrNotIsNumeric(Text2.Text)Then

MsgBox"请输入数值",vbInformation判断是否输入数值

EndIf

OnErrorResumeNext

Q=Text1.Text

R=Text2.Text

Picture2.CurrentX=1绘制坐标系(E和r)

Picture2.CurrentY=2

Picture2.Print"0"

Picture2.CurrentX=1

Picture2.CurrentY=45

Picture2.Print"E"

Picture2.CurrentX=45

Picture2.CurrentY=2

Picture2.Print"r"

Picture2.Line(0,0)-(45,0)

Picture2.Line(45,0)-(44,1)

Picture2.Line(45,0)-(44,-1)

Picture2.Line(0,0)-(0,45)

Picture2.Line(0,45)-(1,44)

Picture2.Line(0,45)-(-1,44)

Picture2.Line(0,0)-(R,Q/R^2*X),RGB(255,255,255)

Picture2.DrawStyle=2

Picture2.Line(R,0)-(R,Q/R^2*X),RGB(255,255,255)

Picture2.Line(0,Q/R^2*X)-(R,Q/R^2*X),RGB(255,255,255)

Picture2.DrawStyle=0绘拐点虚线

Picture2.CurrentX=-1

Picture2.CurrentY=Q/R^2*X

Picture2.CurrentX=R

Picture2.CurrentY=Q/R^2*X

Picture2.Print"拐点P"

Picture2.CurrentX=R

Picture2.CurrentY=1

Picture2.Print"R"

Picture2.CurrentX=-2

Picture2.CurrentY=Q/R^2*X

Picture2.Print"qr/(4πεR^3)"

ForI=RTo45Step0.001绘制场强曲线

E=Q/I^2*X

Picture2.PSet(I,E),RGB(255,255,255)

Next

EndSub

PrivateSubCommand2_Click()

Form3.Hide

Form1.Show

EndSub

PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Me.Caption=X&","&Y显示鼠标在坐标系统中坐标

EndSub

PrivateSubPicture2_MouseMove(ButtonAsInteger,ShiftAsInt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2