贾锋泽:基于VB的数字积分直线插补设计
致谢
本文是在尊敬的导师郝称意老师的悉心指导下完成的。在论文的选题、理论解析方法的确定、模拟方案的选择与实施、论文的构思等方面得到了导师耐心细致地指导和热情帮助。导师渊博的知识、严谨治学的态度、诲人不倦的精神、深遂的科学洞察力、平易近人的人生态度和开拓的科学作风使我终生受益。不仅在学术上得到了导师的淳淳教导,而且在政治思想教育等方面也得到了导师的耐心指教,在生活上也给予了我深切的关怀。在此,谨向培养、教育我的导师致以最崇高的敬意和深深的谢意!
在论文研究期间,我还要感谢我的同学们,在我的论文的撰写中给予了我很大的帮助,在与各位的交流中,使我获益匪浅,希一望他们将来都能学有所用,学有所成!
感谢父母及亲友对我的支持与鼓励,是他们无私的奉献、关怀及精神和物质上的支持让我安心完成学业。
最后,再次向所有曾经给予关心和帮助我的老师和同学表示衷心的感谢。
- 20 -
山西农业大学工学院毕业设计说明书
附录
VB程序
Form1
Private Sub Command1_Click() Form1.Hide Form2.Show End Sub
Private Sub Command2_Click() End End Sub Form2
Dim n, xe, ye, x(1000), y(1000), f(1200), b, j, m, k, p, i, q, yd(1000), xd(1000) Private Sub Command1_Click()
If Text1 <> \
If IsNumeric(Text1) = True And IsNumeric(Text2) = True And IsNumeric(Text3) = True And IsNumeric(Text4) = True Then '画坐标
x(0) = Val(Text1.Text) y(0) = Val(Text2.Text) xe = Val(Text3.Text) ye = Val(Text4.Text)
If (x(0) >= 0) And (y(0) >= 0) And (xe >= 0) And (ye >= 0) Then Command2.Enabled = True Command3.Enabled = True If x(0) < y(0) Then p = y(0)
- 21 -
贾锋泽:基于VB的数字积分直线插补设计
Else p = x(0) End If If p < xe Then p = xe End If If p < ye Then p = ye End If
Scale (-p / 2, 6 * p / 5)-(2 * p, -p / 2) Line (-p / 2, 0)-(6 * p / 5, 0) Line (59 * p / 50, p / 50)-(6 * p / 5, 0) Line (59 * p / 50, -p / 50)-(6 * p / 5, 0) Line (0, 11 * p / 10)-(0, -p / 2)
Line (-p / 50, 54 * p / 50)-(0, 11 * p / 10) Line (p / 50, 54 * p / 50)-(0, 11 * p / 10) CurrentX = 0: CurrentY = 0: Print 0
CurrentX = 11 * p / 10: CurrentY = p / 20: Print \CurrentY = 21 * p / 20: CurrentX = p / 20: Print \For m = -p / 4 To 11 * p / 10 Step p / 10 If m <> 0 Then Line (m, 0)-(m, p / 100) '画刻度
CurrentX = m - p / 50: CurrentY = -p / 100: Print Fix(m * 10) / 10 End If Next m
For m = -p / 4 To p Step p / 10
- 22 -
山西农业大学工学院毕业设计说明书
If m <> 0 Then Line (0, m)-(p / 100, m)
CurrentY = m + p / 50: CurrentX = p / 100: Print Fix(m * 10) / 10 End If Next m Else
MsgBox \请确保直线在第一象限\系统提示\End If Else
MsgBox \请正确输入\系统提示\End If Else
MsgBox \请输入数据\系统提示\End If End Sub
Private Sub Command2_Click() '确定n b = 0
x(0) = Val(Text1.Text) y(0) = Val(Text2.Text) xe = Val(Text3.Text) ye = Val(Text4.Text)
If x(0) < y(0) Then p = y(0) Else p = x(0)
- 23 -
贾锋泽:基于VB的数字积分直线插补设计
End If If p < xe Then p = xe End If If p < ye Then p = ye End If
Do While p >= 2 p = Fix(p / 2) b = b + 1 Loop n = b + 1 q = 2 ^ n '模拟
Line (x(0), y(0))-(xe, ye)
CurrentX = xe: CurrentY = ye: Print \i = 0: xd(0) = x(0): yd(0) = y(0) Do Until i = q x(i + 1) = x(i) + xe y(i + 1) = y(i) + ye If x(i + 1) >= q Then x(i + 1) = x(i + 1) Mod q xd(i + 1) = xd(i) + 1 Else
xd(i + 1) = xd(i) End If
If y(i + 1) >= q Then
- 24 -
山西农业大学工学院毕业设计说明书
y(i + 1) = y(i + 1) Mod q yd(i + 1) = yd(i) + 1 Else
yd(i + 1) = yd(i) End If
Line (xd(i), yd(i))-(xd(i + 1), yd(i + 1)), RGB(255, 0, 0) 'Timer1.Enabled = True i = i + 1 Loop End Sub
Private Sub Command3_Click() Cls '清屏
Form1.Visible = False Text1.Text = \Text2.Text = \Text3.Text = \Text4.Text = \
Command2.Enabled = False Command3.Enabled = False End Sub
Private Sub Command4_Click() End End Sub
- 25 -