一个绘制Bezier曲线的问题,为什么不能给数组赋值?
鼠标单击时读取坐标信息,存入数组,根据四个点的坐标绘出相应的Bezier曲线
同样的算法,在.net下成功运行!
错误提示:“expected array”
程序如下Option Explicit
Dim t As Single
Dim xt As Single
Dim yt As Single
Dim xs As Single
Dim ys As Single
Dim X(3) As Single
Dim Y(3) As Single
Dim i As Integer
Dim hit As Integer
Dim str As String
Private Sub cmdDraw_Click()
    frm.Cls
    If hit < 4 Then
        MsgBox "控制点不够", , "控制点不够"
    Else
    For i = 0 To 20
        t = i * 0.05
        xs = xt
        ys = yt
        xt = (1 - t) * (1 - t) * (1 - t) * X(0) + 3 * (1 - t) * (1 - t) * t * X(1) + 3 * (1 - t) * t * t * X(2) + t * t * t * X(3)
        yt = (1 - t) * (1 - t) * (1 - t) * Y(0) + 3 * (1 - t) * (1 - t) * t * Y(1) + 3 * (1 - t) * t * t * Y(2) + t * t * t * Y(3)
        If i <> 0 Then
            Line (xs, ys)-(xt, yt)
        End If
    Next i
    End If
    cmdDraw.Caption = "再来一次"
End Sub
Private Sub cmdOk_Click()
    End
End SubPrivate Sub Form_Load()
    hit = 0End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)//每单击一次鼠标,就将坐标存入数组。
    X(hit) = X//总是在这个地方出错
    Y(hit) = Y//总是在这个地方出错
    If hit = 4 Then
        MsgBox "四个控制点就足够了", , "四个控制点就足够了"
        hit = 0
        Exit Sub
    End If
    If hit <> 0 Then
        Line (X(hit - 1), Y(hit - 1))-(X(hit), Y(hit))
    End If
    hit = hit + 1
End Sub