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
http://social.msdn.microsoft.com/Forums/zh-TW/232/thread/5b0e0eb7-9cd7-420a-9f56-e588154174ba
http://www.mndsoft.com/blog/article.asp?id=903
http://topic.csdn.net/t/20051015/14/4328396.html
¡¡¡¡VBÊdz£ÓõÄÓ¦ÓÃÈí¼þ¿ª·¢¹¤¾ßÖ®Ò»£¬ÓÉÓÚVBµÄ±¨±í¹¦ÄÜÓÐÏÞ£¬¶øÇÒÒ»µ«±¨±í¸ñʽ·¢Éú±ä»¯£¬¾ÍµÃÏàÓ¦Ð޸ijÌÐò£ ......
ÏÖÔÚ¿íÆÁ£¬´óÆÁÄ»ÏÔʾÆ÷Ô½À´Ô½ÆÕ±é£¬ÔÀ´ÔÚ800*600ÏÂÉè¼ÆµÄÈí¼þ½çÃæ£¬ÔÚ´óÆÁÄ»ÏÔʾÆ÷£¨1680*1050£©ÉϽçÃæ×ÜÊÇËõµ½Ò»½Ç£¬·Ç³£ÄÑ¿´£¬Òª½«ÀϳÌÐòµÄ½çÃæ°´ÕÕ²»Í¬µÄ·Ö±æÂÊÔÚÖØÐ½øÐÐÉè¼Æ±à³Ì£¬Õû¸ö¹ý³Ì±È½Ï¸´ÔÓ¶øÇÒʵÓÃÐÔ²»´ó£¬Èç¹ûÔÀ´³ÌÐò±È½Ï´óÇÒ½çÃæ±È½Ï¶àµÄ»°ÄÇô¹¤×÷Á¿Ò²½«ÊǾ޴óµÄ£¬¶øÇÒ»¹¿ÉÄܳöÏÖÆäËû´íÎó£¬ÓÐûÓÐÒ»ÖÖÖØ ......