Dim p(10000, 1) As Double
Dim num As Integer
Dim ptx As Single
Dim pty As Single
Dim w0, w1, w2, w3 As Single
Private Sub Command1_Click()
Dim t As Single
Dim i As Integer
Dim f0, f1, f2, f3 As Single
Picture1.DrawWidth = 3
For t = 0 To 1 Step 1 / 1000
w0 = Val(Form1.Text1.Text)
w1 = Val(Form1.Text2.Text)
w2 = Val(Form1.Text3.Text)
w3 = Val(Form1.Text4.Text)
f0 = 1 / 6 * (-t ^ 3 + 3 * t ^ 2 - 3 * t + 1)
f1 = 1 / 6 * (3 * t ^ 3 - 6 * t ^ 2 + 4)
f2 = 1 / 6 * (-3 * t ^ 3 + 3 * t ^ 2 + 3 * t + 1)
f3 = 1 / 6 * (t ^ 3)
ptx = (f0 * p(0, 0) * w0 + f1 * p(1, 0) * w1 + f2 * p(2, 0) * w2 + f3 * p(3, 0) * w3) / (f0 * w0 + f1 * w1 + f2 * w2 + f3 * w3)
pty = (f0 * p(0, 1) * w0 + f1 * p(1, 1) * w1 + f2 * p(2, 1) * w2 + f3 * p(3, 1) * w3) / (f0 * w0 + f1 * w1 + f2 * w2 + f3 * w3)
Picture1.PSet (ptx, pty), vbRed
Next
Picture1.DrawWidth = 1
For i = 0 To num - 2
Picture1.Line (p(i, 0), p(i, 1))-(p((i + 1), 0), p((i + 1), 1)), vbGreen
Next
End Sub
Private Sub Command2_Click()
Dim i As Integer
For i = 0 To num - 2
Picture1.Line (p(i, 0), p(i, 1))-(p((i + 1), 0), p((i + 1), 1)), vbWhite
Next
For i = 0 To num
Picture1.Circle (p(i, 0), p(i, 1)), 40, vbWhite
¼üÅÌÊÇÎÒÃÇʹÓüÆËã»úµÄÒ»¸öºÜÖØÒªµÄÊäÈëÉ豸ÁË£¬¼´Ê¹ÔÚÊó±ê´óÐÐÆäµÀµÄ½ñÌ죬ºÜ¶à³ÌÐòÒÀÈ»Àë²»¿ª¼üÅÌÀ´²Ù×÷¡£µ«ÊÇÓÐʱºò£¬Ò»Ð©Öظ´ÐԵģ¬ºÜ·±ËöµÄ¼üÅ̲Ù×÷ ×Ü»áÈÃÈËÆ£±¹£¬ÓÚÊǾÍÓÐÁËÓóÌÐòÀ´´úÌæÈËÃÇ°´¼üµÄ·½·¨£¬ÕâÑù¿ÉÒ԰ѺܶàÖظ´ÐԵļüÅ̲Ù×÷½»¸ø³ÌÐòÀ´Ä£Ä⣬ʡÁ˺ܶྫÁ¦£¬°´¼ü¾«Áé¾ÍÊÇÕâÑùµÄÒ»¸öÈí¼þ¡£ÄÇô ÎÒÃÇÔõÑù²Å ......