三次样条VB代码

上传人:s9****2 文档编号:564830335 上传时间:2023-12-21 格式:DOCX 页数:8 大小:15.24KB
返回 下载 相关 举报
三次样条VB代码_第1页
第1页 / 共8页
三次样条VB代码_第2页
第2页 / 共8页
三次样条VB代码_第3页
第3页 / 共8页
三次样条VB代码_第4页
第4页 / 共8页
三次样条VB代码_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《三次样条VB代码》由会员分享,可在线阅读,更多相关《三次样条VB代码(8页珍藏版)》请在金锄头文库上搜索。

1、S (x)二 Mii1(X厂 X)3 + M (X X-)3i6hi/ M 7、x x / M,、x xt-i + (y h 2)i+ (y i-h 2)16hi-i6 i hi 6 i hiiii = 1,2,3,., nlxi1iM+ 2M +i+1i+1yiyi1i+1i+1yiyi1i+1这是一个含有n+1个未知数的、n-1个方程的线性方程组。要完全确定M的值还需要补充两 个条件。Dim X(1000) As Si ngle, Y(1000) As Si ngleDim u1(0 To 80000) As Sin gle, v1(0 To 80000) As Sin gleDim nu

2、m As LongDim t As In tegerPrivate Declare Sub Sleep Lib kernel32 (ByVai dwMilliseconds As Long)Dim de As In tegerDim Tolnit As Boolea nDim Dow nX As Sin gle, Dow nY As Si ngleSub Drawposi( In dex As In teger)Me.Picturel.ForeColor = 0Me.Picturel.Line (0, Y(Index)-(1024, Y(Index)Me.Picturel.Line (X(In

3、dex), 0)-(X(Index), 770)End SubFun ction hypot(ByVal X As Sin gle, ByVal Y As Sin gle)hypot = Sqr(X A 2 + Y A 2)End Fun cti onSub MovePic(lndex As Integer)Dim i As In tegerX(I ndex) = Picture2(I ndex).Left + 4Y(I ndex) = Picture2(I ndex).Top + 4IblX.Capti on = X: + CStr(CI nt(X(I ndex)IblY.Caption =

4、 Y: + CStr(CI nt(Y(I ndex) lblX.RefreshlblY.RefreshMe.Picture1.ClsMe.Picture1.ForeColor = QBColor(10)For i = 0 To t - 1Me.Picture1.Curre ntX = X(i) + 4Me.Picture1.Curre ntY = Y(i) + 4 Me.Picture1.Pri nt iNext iEnd SubPrivate Sub Comma nd1_Click()Dim i As LongPicture1.Scale (0, 0)-(640, 550)DrawWidth

5、 = 3Picture1.ClsIf Check1.Value Then Command2_ClickX(0) = 1Y(0) = 1X(t - 1) = 638Y(t - 1) = 548Picture1.ForeColor = QBColor(10)For i = 0 To t - 1Picture1.Line (X(i) - 1, Y(i) - 1)-(X(i) + 1, Y(i) + 1), QBColor(10), BPicture1.Pri nt iNext iPicture1.ForeColor = QBColor(12)DrawWidth = 1tspLi ne t - 1,2

6、, 0, 0, 0, 0Picture 1.P Set (u1(0), v1(0)For i = 1 To num - 1Picturel.Line -(u1(i), v1(i)For de = 1 To 12000: Next de Sleep 1Next iPicture1.ForeColor = QBColor(10)For i = 0 To t - 1Picture1.Line (X(i) - 1, Y(i) - 1)-(X(i) + 1, Y(i) + 1), QBColor(10), BPicture1.Pri nt iNext iEnd SubPrivate Sub Comma

7、nd2_Click()Dim i As In tegerRan domize TimerToI nit = Not ToI nitIf ToI nit The nMe.Comma nd1.E nabled = FalseMe.Comma nd2.Captio n =结束初始化Me.ClsFor i = 1 To t - 1Load Me.Picture2(i)Next iFor i = 0 To t - 1Picture2(i).Left = X(i) - 4Picture2(i).Top = Y(i) - 4Picture2(i).Visible = TrueNext iPicture1.C

8、lsMe.Picture1.ForeColor = QBColor(10)For i = 0 To t - 1Picture1.Line (X(i) - 1, Y(i) - 1)-(X(i) + 1, Y(i) + 1), QBColor(10), B Picture1.Pri nt iNext iElseMe.Comma nd1.E nabled = TrueMe.Comma nd2.Captio n =开始初始化For i = 1 To t - 1Un load Me.Picture2(i)Next iMe.Picture2(0).Visible = FalseEnd IfExit Sub

9、For i = 0 To tX(i) = Rn d(1) * 500 + Rn d(1) * 50 + 12Y(i) = Rn d(1) * 400 + Rn d(1) * 100 + 12X(i) = i * 20 + Rn d(1) * 10 + 12Y(i) = i * 10 + Rn d(1) * 300 + 22 - Rn d(1) * 200Next iEnd SubSub tspLine(ByVal n As Integer, ByVal ch As Integer, ByVal tx1 As Single, ByVal tx2 AsSingle, ByVal ty1 As Si

10、ngle, ByVal ty2 As Single)Dim a(1000) As Single, b(1000) As Single, c(1000) As Single, dX(1000) As Single, dY(1000) As Sin gleDim qx(1000) As Single, qy(1000) As SingleDim tt As Single, bx3 As Single, bx4 As Single, by3 As Single, by4 As SingleDim cx As Sin gle, cy As Sin gle, t(1000) As Sin gle, px

11、(1000) As Sin gle, py(1000) As Si ngleDim u(3000) As Si ngle, v(3000) As Sin gle, i As In tegernum = 0For i = 1 To nt(i) = hypot(X(i) - X(i - 1), Y(i) - Y(i - 1)Next iSelect Case chCase 0 抛物条件u(0) = (X(1) - X(0) / t(1): u(1) = (X(2) - X(1) / t(2)u(2) = (u(1) - u(0) / (t(2) + t(1)tx1 = u(0) - u(2) *

12、t(1)u(0) = (Y(1) - Y(0) / t(1): u(1) = (Y(2) - Y(1) / t(2)u(2) = (u(1) - u(0) / (t(2) + t(1)ty1 = u(0) - u(2) * t(1)u(0) = (X( n) - X(n - 1) / t(n): u(1) = (X(n - 1) - X(n - 2) / t(n - 1)u(2) = (u(0) - u(1) / (t( n) + t(n - 1)tx2 = u(0) + u(2) * t(n)u(0) = (Y( n) - Y(n - 1) / t(n): u(1) = (Y(n - 1)

13、- Y(n - 2) / t(n - 1)u(2) = (u(0) - u(1) / (t( n) + t(n - 1)ty2 = u(0) + u(2) * t(n)Case 1 夹持条件a(0) = 1: c(0) = 0: dX(O) = txl: dY(O) = ty1a(n) = 1: b(n) = 0: dX(n) = tx2: dY( n) = ty2Case 2 自由条件a(0) = 2: c(0) = 1dX(0) = 3 * (X(1) - X(0) / t(1): dY(0) = 3 * (Y(1) - Y(0) / t(1)a(n) = 2: b(n) = 1dX( n

14、) = 3 * (X( n) - X(n - 1) / t(n): dY( n) = 3 * (Y(n) - Y(n - 1) / t(n)Case 3 循环条件a(0) = 2: c(0) = 1dX(0) = 3 * (X(1) - X(0) / t(1) - (t(1) * (X(2) - X(1) / t(2) - X(1) + X(0) / (t(1) + t(2) dY(0) = 3 * (Y(1) - Y(0) / t(1) - (t(1) * (Y(2) - Y(1) / t(2) - Y(1) + Y(0) / (t(1) + t(2) a(n) = 2: b(n) = 1d

15、X( n) = 3 * (X(n) - X(n - 1) / t(n)dX( n) = dX( n) + (X( n) - X(n - 1) - t(n) * (X(n - 1) - X(n - 2) / t(n - 1) / (t( n) + t(n - 1) dY( n) = 3 * (Y( n) - Y(n - 1) / t(n)dY( n) = dY( n) + (Y( n) - Y(n - 1) - t(n) * (Y(n - 1) - Y(n - 2) / t(n - 1) / (t( n) + t(n - 1) End Select计算方程组系数阵和常数阵For i = 1 To n - 1a(i) = 2 * (t(i) + t(i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号